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

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

以上就是Python實現(xiàn)猜拳與猜數(shù)字游戲的方法詳解的詳細內(nèi)容,更多關于Python 猜拳猜數(shù)字的資料請關注腳本之家其它相關文章!
相關文章
python數(shù)字圖像處理之高級形態(tài)學處理
這篇文章主要介紹了python數(shù)字圖像處理之高級形態(tài)學處理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Python爬蟲爬取全球疫情數(shù)據(jù)并存儲到mysql數(shù)據(jù)庫的步驟
這篇文章主要介紹了Python爬蟲爬取全球疫情數(shù)據(jù)并存儲到mysql數(shù)據(jù)庫的步驟,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-03-03
python pip配置國內(nèi)鏡像源的方法(永久和臨時)
在使用 pip 安裝 Python 模塊時,默認的國外鏡像源可能會導致下載速度緩慢甚至超時,為了解決這個問題,可以使用國內(nèi)的鏡像源來加速下載,以下是常用的國內(nèi)鏡像源以及臨時和永久的配置方法,需要的朋友可以參考下2025-04-04
Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫全流程
SQL Server是微軟推出的重量級的數(shù)據(jù)庫,目前有多個版本,如2000、2008、2012等,下面這篇文章主要給大家介紹了關于Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫的相關資料,需要的朋友可以參考下2023-12-12
python區(qū)塊鏈持久化和命令行接口實現(xiàn)簡版
這篇文章主要為大家介紹了python區(qū)塊鏈持久化和命令行接口實現(xiàn)簡版,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
python numpy中mat和matrix的區(qū)別
這篇文章主要介紹了python numpy中mat和matrix的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

