Python使用random模塊實作擲骰子游戲
- 引入內容
- 題目要求
- 撰寫開始
- 模塊的匯入以及初始變數的定義
- 開始比賽程序
- 比賽結束以后統計結果
- 完整代碼
引入內容
根據人民郵電出版社出版的《Python程式設計現代設計方法》P102習題中的第7題——擲骰子游戲,進行代碼撰寫,
題目要求
一盤游戲中,兩人輪流擲骰子5次,并將每次擲出的點數累加,5局之后,累計點數較大者獲勝,點數相同則為平局,根據此規則實作擲骰子游戲,并算出50盤之后的勝利者( 50盤中嬴得盤數最多的,即最終勝利者),
審題: 共有50盤游戲,一盤游戲有5局,每一局雙方各擲骰子一次,5局結束以后統計分數,分數高的一方獲勝,至此,一盤游戲結束,50盤游戲結束后,贏得盤數最多的一方為最終勝利者,
撰寫開始
↓↓↓開始奇妙Python之旅吧!↓↓↓
模塊的匯入以及初始變數的定義
統一宣告變數,便于后續的管理和使用,
import random #匯入模塊
# ↓↓↓ 定義初始變數
a =0 # 用來記錄人物A擲投擲的結果
b =0 # 用來記錄人物B擲投擲的結果
level_score =0 # 用來記錄雙方平局次數
score_A =0 # 人物A的每小局勝利次數
score_B =0 # 人物B的每小局勝利次數
開始比賽程序
本處用了for … in range(50)回圈模擬進行50盤游戲,并在回圈內嵌套新的for … in …range(5)作為每盤游戲中進行5次程序的模擬
for x in range(50): # 進行50盤比賽
for n in range(5): # 模擬雙方每盤搖5次骰子
person_A =random.randint(1,6) # 使用random模塊的randit進行1~6模擬搖骰子的程序
a +=person_A # 將投擲結果保存
person_B =random.randint(1,6)# 使用random模塊的randit進行1~6模擬搖骰子的程序
b +=person_B # 將投擲結果保存
if a>b: # 比較雙方投擲結果總和,將比較結果保存至本場比賽最終結果
score_A+=1
elif a<b:
score_B+=1
else:
level_score+=1
a =0 # 重置雙方分數,并進入下一輪回圈
b =0 # 重置雙方分數,并進入下一輪回圈
# 此處如果不重置分數,本次投擲結果將會進入下一次回圈,有悖題目要求和比賽公平性,
比賽結束以后統計結果
前面我們對每盤游戲進行了模擬,現在我們要書寫題目最后的要求的代碼,
因為前面用了score_A和score_B作為用來記錄每盤游戲結束的變數,所以此處我們只需要對之前的變數進行大小比較即可,
if score_A>score_B: # 比較最終結果,游戲結束
print(f'本次比賽A勝,A總分為:{score_A},B總分為:{score_B},比賽期間平局次數為:{level_score}')
elif score_A<score_B:
print(f'本次比賽B勝,A總分為:{score_A},B總分為:{score_B},比賽期間平局次數為:{level_score}')
else:
print(f'本次比賽平局,雙方總分:A{score_A} vs B{score_B},比賽期間平局次數為:{level_score}')
完整代碼
import random #匯入模塊
# ↓↓↓ 定義初始變數
a =0 # 用來記錄人物A擲投擲的結果
b =0 # 用來記錄人物B擲投擲的結果
level_score =0 # 用來記錄雙方平局次數
score_A =0 # 人物A的每小局勝利次數
score_B =0 # 人物B的每小局勝利次數
for x in range(50): # 進行50盤比賽
for n in range(5): # 模擬雙方每盤搖5次骰子
person_A =random.randint(1,6) # 使用random模塊的randit進行1~6模擬搖骰子的程序
a +=person_A # 將投擲結果保存
person_B =random.randint(1,6)# 使用random模塊的randit進行1~6模擬搖骰子的程序
b +=person_B # 將投擲結果保存
if a>b: # 比較5局以后雙方投擲結果總和,將比較結果保存至本場比賽最終結果
score_A+=1 # A本盤獲勝
elif a<b: # B本盤獲勝
score_B+=1
else:
level_score+=1
a =0 # 重置雙方分數,并進入下一輪回圈
b =0 # 重置雙方分數,并進入下一輪回圈
# 此處如果不重置分數,本次投擲結果將會進入下一次回圈,有悖題目要求和比賽公平性,
if score_A>score_B: # 比較最終結果,游戲結束
print(f'本次比賽A勝,A總分為:{score_A},B總分為:{score_B},比賽期間平局次數為:{level_score}')
elif score_A<score_B:
print(f'本次比賽B勝,A總分為:{score_A},B總分為:{score_B},比賽期間平局次數為:{level_score}')
else:
print(f'本次比賽平局,雙方總分:A{score_A} vs B{score_B},比賽期間平局次數為:{level_score}')
本題結束,代碼可作為借鑒使用,同學們也要注重思考,理解其中的代碼含義,如有紕漏或不明之處可以在評論區討論,讓我們一起進步!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281267.html
標籤:python
上一篇:Python入門到實戰(五)自動化辦公、pandas操作Excel、資料可視化、繪制柱狀圖、操作Word、資料報表生成、pip install國內鏡像下載
