Python是一種廣泛使用的編程語(yǔ)言,其具有出色的功能和靈活性,使其成為許多開(kāi)發(fā)人員和數(shù)據(jù)科學(xué)家的首選語(yǔ)言。Python的一個(gè)優(yōu)點(diǎn)是其豐富的庫(kù)和工具,可用于各種目的,包括游戲編程。Python編程可以用于編寫(xiě)各種類(lèi)型的游戲,其中包括經(jīng)典的尼姆游戲。
# Python 程序設(shè)計(jì): 尼姆游戲 def human_move(stones): print "現(xiàn)在有", stones, "石頭" remove = int(raw_input("請(qǐng)您輸入玩家取石子數(shù): ")) while remove< 1 or remove >3 or remove >stones: # 輸入合法性檢查 remove = int(raw_input("輸入無(wú)效! 請(qǐng)重新輸入: ")) return remove def computer_move(stones): WINNING_POSITIONS = {0: 1, 1: 1, 2: 1, 3: 2, 4: 1, 5: 3, 6: 2, 7: 1, 8: 4, 9: 3, 10: 5, 11: 2, 12: 3, 13: 5, 14: 4, 15: 1} if stones in WINNING_POSITIONS: return WINNING_POSITIONS[stones] return 1 def play_Nim(): stones = 16 # 可以修改墩子的數(shù)量 player = 1 # 玩家先走 while True: print "\n墩子上剩余的石頭數(shù)量是:", stones if player == 1: # 玩家走 remove = human_move(stones) else: # 計(jì)算機(jī)走 print "輪到電腦走了。" remove = computer_move(stones) print "電腦取走了", remove, "石頭。" stones -= remove # 更新剩余的石頭數(shù)量 if stones == 0: # 游戲結(jié)束 if player == 1: print "\n您贏了! 恭喜!" else: print "\n電腦贏了! 再來(lái)一局試試吧。" break player = 3 - player # 輪到另一個(gè)玩家走 print "游戲結(jié)束。再見(jiàn)!" play_Nim()
上面的Python代碼定義了一個(gè)尼姆游戲,玩家可以與計(jì)算機(jī)進(jìn)行對(duì)戰(zhàn)。該程序使用兩個(gè)不同的函數(shù)來(lái)移動(dòng)石頭:human_move()和computer_move()。human_move函數(shù)要求玩家輸入從墩子上移除的石頭數(shù)量,并檢查輸入的合法性。computer_move函數(shù)則計(jì)算計(jì)算機(jī)應(yīng)該從墩子上移除多少石頭。
該程序使用while循環(huán)來(lái)處理玩家和計(jì)算機(jī)的交替移動(dòng),直到墩子上的石頭數(shù)量為零。一旦游戲結(jié)束,該程序會(huì)輸出勝利者的結(jié)果,并退出游戲。