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}')
到此這篇關於Python使用random模塊實現擲骰子遊戲的示例代碼的文章就介紹到這瞭,更多相關Python random擲骰子內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python+random模塊實現隨機抽樣
- Python基本結構之判斷語句的用法詳解
- 分析講解Java Random類裡的種子問題
- python運算符+條件結構+循環結構
- Python如何生成隨機數及random隨機數模塊應用