内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Python實(shí)現(xiàn)剪刀石頭布小游戲-創(chuàng)新互聯(lián)

/1 前言/

創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、南陵網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制、商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為南陵等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

最近在學(xué)習(xí)PyQt5可視化界面,這是一個(gè)內(nèi)容非常豐富的gui庫(kù),相對(duì)于tkinter庫(kù),功能更加強(qiáng)大,界面更加美觀,操作也不難。于是我開(kāi)始小試牛刀,用PyQt5做個(gè)可視化的“剪刀石頭布”小游戲,總體效果如下:

該程序可以實(shí)現(xiàn)游戲輪次統(tǒng)計(jì),雙方得分、平局次數(shù)統(tǒng)計(jì)和重新開(kāi)始功能,不管是1局決勝負(fù),還是三局兩勝、七局三勝,都能完美解決。

/2 具體實(shí)現(xiàn)/

下面給大家詳細(xì)介紹一下具體步驟。

第一步:創(chuàng)建游戲主窗口

PyQt5創(chuàng)建主窗口有其固定的套路,首先要?jiǎng)?chuàng)建應(yīng)用程序?qū)ο螅篴pp=QApplication(sys.argv),參數(shù)sys.argv是命令行參數(shù),這使得可以在電腦系統(tǒng)終端執(zhí)行程序時(shí),傳入命令參數(shù),來(lái)執(zhí)行不同的邏輯代碼。執(zhí)行應(yīng)用程序?qū)ο?,進(jìn)入消息循環(huán)等待退出: sys.exit(app.exec_()),代碼如下圖所示:

Python實(shí)現(xiàn)剪刀石頭布小游戲

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

再為該窗口添加標(biāo)題和圖標(biāo)如下圖所示:

Python實(shí)現(xiàn)剪刀石頭布小游戲

效果如下圖所示:

第二步:以網(wǎng)格布局方式放控件

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

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

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

Python實(shí)現(xiàn)剪刀石頭布小游戲

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

Python實(shí)現(xiàn)剪刀石頭布小游戲

第二行中間網(wǎng)格放置紅藍(lán)雙方得分情況。

這里需要注意一下,我在第二行第二個(gè)網(wǎng)格里又嵌入一個(gè)新的網(wǎng)格對(duì)象,將其分成1個(gè)1行3列的網(wǎng)格,其中第1個(gè)網(wǎng)格放紅方得分,第二個(gè)網(wǎng)格放“VS”,第三個(gè)放藍(lán)方得分。

3.綁定“開(kāi)始游戲”、“重新開(kāi)始”信號(hào)槽

Python實(shí)現(xiàn)剪刀石頭布小游戲

用QpushButton創(chuàng)建“開(kāi)始游戲”按鈕,綁定gamestart函數(shù)(后續(xù)還會(huì)講),并將該按鈕放入第三行的第二個(gè)網(wǎng)格中。

Python實(shí)現(xiàn)剪刀石頭布小游戲

用QpushButton創(chuàng)建“重新開(kāi)始”按鈕,綁定restart函數(shù)(后續(xù)還會(huì)講),并將該按鈕放入第三行的第三個(gè)網(wǎng)格中。效果如下圖所示:

Python實(shí)現(xiàn)剪刀石頭布小游戲

現(xiàn)在基本框架已經(jīng)搭建好了。

第三步:信號(hào)槽綁定信號(hào)

主要是針對(duì)開(kāi)始游戲和重新開(kāi)始游戲按鈕綁定信號(hào),下面給大家介紹一下上述的gamestart和restart函數(shù)。

1. gamestart函數(shù)

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

這里用了red和blue兩個(gè)類(lèi),每次點(diǎn)擊開(kāi)始游戲按鈕,都會(huì)調(diào)用該類(lèi),用random函數(shù)隨機(jī)選出圖片,并在相應(yīng)位置展示。

2)判斷輸贏,實(shí)時(shí)更新數(shù)據(jù)Python實(shí)現(xiàn)剪刀石頭布小游戲

Gamestart下調(diào)用judge函數(shù),判斷得分,記錄紅方得分、藍(lán)方得分、平局次數(shù)3個(gè)值,并用setText函數(shù)立即更新紅方得分框、藍(lán)方得分框及平局次數(shù)框的內(nèi)容。

最后,為了避免游戲中不小心點(diǎn)擊關(guān)閉窗口按鈕,添加1個(gè)關(guān)閉事件,如下圖所示。

Python實(shí)現(xiàn)剪刀石頭布小游戲

到這里,這個(gè)小游戲就制作完畢了,界面比較簡(jiǎn)單,感興趣的朋友可以繼續(xù)開(kāi)發(fā)更高級(jí)的功能。

/3 結(jié)語(yǔ)/

本文基于PyQt5可視化界面,用PyQt5做個(gè)可視化的“剪刀石頭布”小游戲,可以實(shí)現(xiàn)游戲輪次統(tǒng)計(jì),雙方得分、平局次數(shù)統(tǒng)計(jì)和重新開(kāi)始功能,不管是1局決勝負(fù),還是三局兩勝、七局三勝,都能完美解決。

歡迎大家嘗試,消耗在家的無(wú)聊時(shí)間。本文涉及的代碼都上傳到了github地址上,后臺(tái)回復(fù)“剪刀石頭布”五個(gè)字即可獲取代碼。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:Python實(shí)現(xiàn)剪刀石頭布小游戲-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article0/docpio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站收錄、響應(yīng)式網(wǎng)站小程序開(kāi)發(fā)、動(dòng)態(tài)網(wǎng)站、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
东辽县| 榆林市| 土默特右旗| 湘阴县| 本溪| 岳池县| 霞浦县| 昭苏县| 信丰县| 石河子市| 永州市| 鄢陵县| 麻江县| 巴林左旗| 南川市| 大新县| 天台县| 永昌县| 泸州市| 潮安县| 巴林右旗| 凤阳县| 嘉祥县| 丰县| 孟州市| 怀集县| 璧山县| 娱乐| 贵德县| 长乐市| 获嘉县| 比如县| 皋兰县| 绥中县| 京山县| 马尔康县| 阜城县| 藁城市| 孟村| 成武县| 伊川县|