中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現剪刀石頭布小游戲

發布時間:2020-05-25 16:50:33 來源:億速云 閱讀:267 作者:鴿子 欄目:編程語言

/1 前言/

最近在學習PyQt5可視化界面,這是一個內容非常豐富的gui庫,相對于tkinter庫,功能更加強大,界面更加美觀,操作也不難。于是我開始小試牛刀,用PyQt5做個可視化的“剪刀石頭布”小游戲,總體效果如下:


該程序可以實現游戲輪次統計,雙方得分、平局次數統計和重新開始功能,不管是1局決勝負,還是三局兩勝、七局三勝,都能完美解決。


/2 具體實現/

下面給大家詳細介紹一下具體步驟。

第一步:創建游戲主窗口

PyQt5創建主窗口有其固定的套路,首先要創建應用程序對象:app=QApplication(sys.argv),參數sys.argv是命令行參數,這使得可以在電腦系統終端執行程序時,傳入命令參數,來執行不同的邏輯代碼。執行應用程序對象,進入消息循環等待退出: sys.exit(app.exec_()),代碼如下圖所示:

Python實現剪刀石頭布小游戲

其中,GameWindow()是本次游戲的類,窗口大小為900X400

再為該窗口添加標題和圖標如下圖所示:

Python實現剪刀石頭布小游戲


效果如下圖所示:

第二步:以網格布局方式放控件

PyQt5有5種布局方式,分別是絕對布局、水平布局、垂直布局、網格布局和表單布局,本次只采用網格布局,其余布局方式各有特點,感興趣的朋友可以研究一下。

1.我想把整個出窗口分成3x3=9個網格,然后以網格布局的方式往里填內容,首先將“紅方選手”、“第X輪”、“藍方選手”分別放入第一行的3個網格中。

網格布局需要用到addWidget函數,它的上圖中的4個參數分別代表放置的空間、放置行數、放置的列數,上述3個控件分別放在第1行的1-3列。效果如下圖所示:


Python實現剪刀石頭布小游戲


2.留出“剪刀石頭布”圖片展示位置,分別放置在第二行的1和3網格。

Python實現剪刀石頭布小游戲


第二行中間網格放置紅藍雙方得分情況。

這里需要注意一下,我在第二行第二個網格里又嵌入一個新的網格對象,將其分成1個1行3列的網格,其中第1個網格放紅方得分,第二個網格放“VS”,第三個放藍方得分。

3.綁定“開始游戲”、“重新開始”信號槽


Python實現剪刀石頭布小游戲


用QpushButton創建“開始游戲”按鈕,綁定gamestart函數(后續還會講),并將該按鈕放入第三行的第二個網格中。


Python實現剪刀石頭布小游戲


用QpushButton創建“重新開始”按鈕,綁定restart函數(后續還會講),并將該按鈕放入第三行的第三個網格中。效果如下圖所示:

Python實現剪刀石頭布小游戲


現在基本框架已經搭建好了。

第三步:信號槽綁定信號

主要是針對開始游戲和重新開始游戲按鈕綁定信號,下面給大家介紹一下上述的gamestart和restart函數。

1. gamestart函數

1)游戲開始后,我需要隨機從“剪刀”、“石頭”、“布”三張圖片中選出1張放置到相應位置

這里用了red和blue兩個類,每次點擊開始游戲按鈕,都會調用該類,用random函數隨機選出圖片,并在相應位置展示。

2)判斷輸贏,實時更新數據Python實現剪刀石頭布小游戲


Gamestart下調用judge函數,判斷得分,記錄紅方得分、藍方得分、平局次數3個值,并用setText函數立即更新紅方得分框、藍方得分框及平局次數框的內容。

最后,為了避免游戲中不小心點擊關閉窗口按鈕,添加1個關閉事件,如下圖所示。

Python實現剪刀石頭布小游戲


到這里,這個小游戲就制作完畢了,界面比較簡單,感興趣的朋友可以繼續開發更高級的功能。

/3 結語/

本文基于PyQt5可視化界面,用PyQt5做個可視化的“剪刀石頭布”小游戲,可以實現游戲輪次統計,雙方得分、平局次數統計和重新開始功能,不管是1局決勝負,還是三局兩勝、七局三勝,都能完美解決。

歡迎大家嘗試,消耗在家的無聊時間。本文涉及的代碼都上傳到了github地址上,后臺回復“剪刀石頭布”五個字即可獲取代碼。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巨野县| 和平区| 修文县| 玉溪市| 棋牌| 万源市| 墨脱县| 西安市| 雅江县| 冷水江市| 德化县| 佛坪县| 电白县| 南开区| 北海市| 高雄市| 石台县| 甘谷县| 新河县| 青州市| 上林县| 唐河县| 新兴县| 青铜峡市| 突泉县| 乐清市| 佳木斯市| 佛冈县| 永胜县| 南木林县| 曲麻莱县| 乌兰县| 大丰市| 汉中市| 茶陵县| 连城县| 襄垣县| 扶风县| 吴江市| 沁水县| 泸水县|