Python代碼的人機大戰(循環嵌套)
阿新 • • 發佈:2019-02-22
art 1.5 inpu 格式 找到 轉換 這樣的 提示 容易
第一次動手寫隨筆,記錄一下今早的1.5小時努力成果
題目是這樣的 :
人和機器進行猜拳遊戲寫成一個類,首先選擇角色:1 曹操 2張飛 3 劉備,然後選擇的角色進行猜拳:1剪刀 2石頭 3布 玩家輸入一個1-3的數字;然後電腦出拳 隨機產生1個1-3的數字,提示電腦出拳結果( 1剪刀 2石頭 3布 ) ,雙方出拳完畢後:角色和機器出拳對戰,對戰結束後,最後出示本局對戰結果...贏...輸,然後提示用戶是否繼續?按y繼續,按n退出。最後結束的時候輸出結果 角色贏幾局 電腦贏幾局,平局幾次 遊戲結束。
代碼如下:
import random class game_huaquan(): def Gamer(self): Part = input("請選擇你要操作的角色,1.曹操 2.張飛 3.劉備 :") return Part def Game(self,win=0,lose=0,draw=0,num=0): while True: s = (1,2,3) S = ("剪刀", "石頭", "布") input_number = int(input("請輸入出拳結果,1.剪刀 2.石頭 3.布\n")) random_number = random.randint(1,3) if input_number not in s: print(‘輸入有誤,請重新輸入‘) continue else: while True: if input_number == random_number: print(‘您出拳結果:{}\n電腦出拳結果:{} \n打平‘.format(input_number,random_number)) draw += 1 num += 1 if (input_number == 1 and random_number== 2) or (input_number==2 and random_number== 3) or (input_number==3 and random_number== 1): print(‘您出拳結果:{} \n電腦出拳結果:{} \n您輸了‘.format(input_number,random_number)) lose += 1 num += 1 if (input_number == 2 and random_number == 1) or (input_number == 3 and random_number== 2) or (input_number == 1 and random_number == 3): print(‘您出拳結果:{}\n電腦出拳結果:{} \n您贏了‘.format(input_number,random_number)) win += 1 num += 1 while True: con = input("輸入‘Y‘繼續遊戲,輸入‘N‘結束遊戲:\n") if con == ‘Y‘: break elif con == ‘N‘: return win,lose,draw,num else: print("輸入錯誤請重新輸入!") continue break def Game_console(self,Part,win,lose,draw,num): if Part == ‘1‘: print(‘本次遊戲中,您操作的角色曹操贏{}局,輸{}局,平{}局,進行了{}局‘.format(win,lose,draw,num)) if Part == ‘2‘: print(‘本次遊戲中,您操作的角色張飛贏{}局,輸{}局,平{}局,進行了{}局‘.format(win,lose,draw,num)) if Part == ‘3‘: print(‘本次遊戲中,您操作的角色劉備贏{}局,輸{}局,平{}局,進行了{}局‘.format(win,lose,draw,num)) if __name__ == ‘__main__‘: part = game_huaquan().Gamer() Scene = game_huaquan().Game() game_huaquan().Game_console(part,Scene[0],Scene[1],Scene[2],Scene[3])
註意要點有 處:
1.出拳情況應該往結果上靠,剛開頭走錯路,寫了9個if,實際上3個就能解決了,要麽贏、要麽輸、要麽平。註意到這一點結果判定就很好解決了
2.循環的跳出,在最後一個break上浪費了我半小時,一直循環跳出不到出拳,以後要註意
3.不要進行無意義的格式轉換,無意義的格式轉換容易出錯,哪怕第一次運行沒問題,第二次,第三次總會出現各種各樣奇怪的bug,而且很難找到問題根源
Python代碼的人機大戰(循環嵌套)