Python實(shí)現(xiàn)猜拳與猜數(shù)字游戲的方法詳解
至此,我們的 Python零基礎(chǔ)入門篇 的系列專欄到今天基本上算是結(jié)束了。今天沒有任何的知識(shí)點(diǎn),只是運(yùn)用我們之前學(xué)習(xí)過的知識(shí)做兩個(gè)小游戲的案例。第一個(gè)是模擬猜拳的小游戲,第二個(gè)就是猜數(shù)字的游戲。
猜拳小游戲
需求:
運(yùn)用至今所學(xué)的 Python 知識(shí)編寫腳本,實(shí)現(xiàn)一個(gè)人與計(jì)算機(jī)玩猜拳的石頭剪刀布的小游戲。
這里我們先思考一下,如果將石頭、剪刀、布分別用數(shù)字0、1、2表示,那么如何判定誰勝誰負(fù)呢?
| user | robot | 結(jié)果 |
|---|---|---|
| 0(石頭) | 0(石頭) | 平局 |
| 0(石頭) | 1(剪刀) | user 獲勝 |
| 0(石頭) | 2(布) | robot 獲勝 |
| 1(剪刀) | 0(石頭) | robot 獲勝 |
| 1(剪刀) | 1(剪刀) | 平局 |
| 1(剪刀) | 2(布) | user 獲勝 |
| 2(布) | 0(石頭) | user 獲勝 |
| 2(布) | 1(剪刀) | robot 獲勝 |
| 2(布) | 2(布) | 平局 |
不難發(fā)現(xiàn)游戲的規(guī)律如下:
- 如果user和computer相等就是平局
- 如果用 (user+1) 除以 3 得到的余數(shù)與 robot 相等,就是user(人)獲得勝利
- 其余情況都是 robot 獲勝
案例腳本如下:
# coding:utf-8
import random
# TODO:只針對(duì)輸入的參數(shù)做了 int 的排除,未針對(duì)輸入的 非 int 類型做校驗(yàn),可通過 isNum 函數(shù)做校驗(yàn),或者進(jìn)行 異常捕獲。
data = {0: '石頭', 1: '剪刀', 2: '布'}
while(True):
robot = random.randint(0, 2)
print('********猜拳小游戲即將開始,請(qǐng)準(zhǔn)備!********')
user = int(input('請(qǐng)輸入[0:石頭;1:剪刀;2:布;9:退出游戲]:'))
if user not in (9, 0, 1, 2):
print('--------輸入?yún)?shù)不合法,請(qǐng)重新輸入!--------')
print(' ')
continue
elif user == 9:
print('**********游戲結(jié)束,下次再來玩哦**********')
break
elif not 0 <= user <= 2:
continue
if user == robot:
print('\'你\'出的是{}, \'ROBOT\' 出的是{}, 結(jié)果為:\'平局\''.format(data[user], data[robot]))
print(' ')
elif (user + 1) % 3 == robot:
print('\'你\'出的是{}, \'ROBOT\' 出的是{}; 結(jié)果為:\'你贏了!\''.format(data[user], data[robot]))
print(' ')
else:
print('\'你\'出的是{}, \'ROBOT\' 出的是{}; 結(jié)果為:\'ROBOT贏了!\''.format(data[user], data[robot]))
print(' ')
PS:這里的傳入?yún)?shù)校驗(yàn)并不完善,大家可以嘗試自己動(dòng)手完善一下。

數(shù)字猜猜猜小游戲
需求:
根據(jù)現(xiàn)實(shí)生活中的猜數(shù)字游戲的游戲規(guī)則,運(yùn)用Python語言模擬實(shí)現(xiàn)猜數(shù)字游戲的的基本功能.
1、設(shè)定可猜測(cè)的次數(shù),并根據(jù)提示進(jìn)行數(shù)字區(qū)間的輸入猜測(cè)的數(shù)字
2、將輸入的數(shù)字與隨機(jī)生成的數(shù)字進(jìn)行比對(duì),同時(shí)次數(shù)減一。若次數(shù)用完后,仍未猜對(duì),則游戲結(jié)束。
案例腳本如下:
# coding:utf-8
import random
# TODO:這并不是我想要的效果,但是目前也只能寫成這樣了,有時(shí)間再晚上吧。
robot = random.randint(1, 10)
count = 5
print("*************游戲開始***************")
print("猜數(shù)字游戲,數(shù)字在1到10之間,你有{0}次機(jī)會(huì)".format(count))
print(' ')
while count > 0:
num = input("請(qǐng)輸入您要猜測(cè)的數(shù)字:")
if num.isdigit():
num = int(num)
if num == robot:
print("對(duì)了")
print(' ')
break
elif num < robot:
# print("您輸入的參數(shù)小了", '剩余機(jī)會(huì)次數(shù):%s' % int(count-1))
print("您輸入的參數(shù)小了", '剩余機(jī)會(huì)次數(shù):{0}'.format(count-1))
print(' ')
else:
print("您輸入的參數(shù)大了", '剩余機(jī)會(huì)次數(shù):{0}'.format(count-1))
print(' ')
count -= 1
if count == 0:
print("您的機(jī)會(huì)已經(jīng)用完")
print(' ')
break
# print("你還剩余{0}次機(jī)會(huì)".format(count))
# print(' ')
else:
print("你輸入的不是一個(gè)數(shù)字,請(qǐng)重新輸入")
print(' ')
print("**********游戲結(jié)束************")

以上就是Python實(shí)現(xiàn)猜拳與猜數(shù)字游戲的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python 猜拳猜數(shù)字的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python實(shí)現(xiàn)猜數(shù)字游戲
- python編寫猜數(shù)字小游戲
- Python實(shí)現(xiàn)簡(jiǎn)單猜數(shù)字游戲
- 利用Python3實(shí)現(xiàn)統(tǒng)計(jì)大量單詞中各字母出現(xiàn)的次數(shù)和頻率的方法
- python實(shí)戰(zhàn)之90行代碼寫個(gè)猜數(shù)字游戲
- Python如何將給定字符串中的大寫英文字母按以下對(duì)應(yīng)規(guī)則替換
- Python實(shí)現(xiàn)猜數(shù)字小游戲
- python猜數(shù)字小游戲?qū)崿F(xiàn)代碼
- 如何利用Python寫猜數(shù)字和字母的游戲
相關(guān)文章
Python爬取國(guó)外天氣預(yù)報(bào)網(wǎng)站的方法
這篇文章主要介紹了Python爬取國(guó)外天氣預(yù)報(bào)網(wǎng)站的方法,可實(shí)現(xiàn)抓取國(guó)外天氣預(yù)報(bào)信息的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
python數(shù)字圖像處理之高級(jí)形態(tài)學(xué)處理
這篇文章主要介紹了python數(shù)字圖像處理之高級(jí)形態(tài)學(xué)處理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫(kù)的步驟
這篇文章主要介紹了Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫(kù)的步驟,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03
python pip配置國(guó)內(nèi)鏡像源的方法(永久和臨時(shí))
在使用 pip 安裝 Python 模塊時(shí),默認(rèn)的國(guó)外鏡像源可能會(huì)導(dǎo)致下載速度緩慢甚至超時(shí),為了解決這個(gè)問題,可以使用國(guó)內(nèi)的鏡像源來加速下載,以下是常用的國(guó)內(nèi)鏡像源以及臨時(shí)和永久的配置方法,需要的朋友可以參考下2025-04-04
Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)全流程
SQL Server是微軟推出的重量級(jí)的數(shù)據(jù)庫(kù),目前有多個(gè)版本,如2000、2008、2012等,下面這篇文章主要給大家介紹了關(guān)于Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2023-12-12
python區(qū)塊鏈持久化和命令行接口實(shí)現(xiàn)簡(jiǎn)版
這篇文章主要為大家介紹了python區(qū)塊鏈持久化和命令行接口實(shí)現(xiàn)簡(jiǎn)版,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
python numpy中mat和matrix的區(qū)別
這篇文章主要介紹了python numpy中mat和matrix的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python OpenCV實(shí)現(xiàn)圖片上輸出中文
這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)圖片上輸出中文,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
python實(shí)現(xiàn)自動(dòng)清理文件夾舊文件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)自動(dòng)清理文件夾舊文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05

