在此先安利一波大佬的Python學習專案地址:https://github.com/jackfrued/Python-100-Days
這些天一直在看著大佬的專案學習Python,這是第五天迴圈學習完的練習,感覺很有意思,就照著意思寫了一下,期間也改進了很多不滿意的地方,個人認為這個例子真的很?,
可以根據執行中產生的很多問題一步步去解決,達到自己理想的效果
Craps賭博遊戲:
玩家搖兩顆色子 如果第一次搖出7點或11點 玩家勝
如果搖出2點 3點 12點 莊家勝 其他情況遊戲繼續
玩家再次要色子 如果搖出7點 莊家勝
如果搖出第一次搖的點數 玩家勝
否則遊戲繼續 玩家繼續搖色子
玩家進入遊戲時有1000元的賭注 全部輸光遊戲結束
這是那位大佬的版本:
1 from random import randint 2 3 money = 1000 4 while money > 0: 5 print('你的總資產為:', money) 6 needs_go_on = False 7 while True: 8 debt = int(input('請下注: ')) 9 if debt > 0 and debt <= money: 10 break 11 first = randint(1, 6) + randint(1, 6) 12 print('玩家搖出了%d點' % first) 13 if first == 7 or first == 11: 14 print('玩家勝!') 15 money += debt 16 elif first == 2 or first == 3 or first == 12: 17 print('莊家勝!') 18 money -= debt 19 else: 20 needs_go_on = True 21 22 while needs_go_on: 23 current = randint(1, 6) + randint(1, 6) 24 print('玩家搖出了%d點' % current) 25 if current == 7: 26 print('莊家勝') 27 money -= debt 28 needs_go_on = False 29 elif current == first: 30 print('玩家勝') 31 money += debt 32 needs_go_on = False 33 34 print('你破產了, 遊戲結束!')
大佬的版本我覺得只有一個不友好的地方就是當輸入為空時,會出現一個ValueError的異常,這樣我認為不太友好,所以改版了一下,下面是我的版本
1 from random import randint 2 money=1000 3 while money>0: 4 touzhu=0 5 try: 6 touzhu = int(input('你投注的金額是:')) 7 except ValueError: 8 print('輸入為空',end=', ') 9 #touzhu=int(input()) 10 finally: 11 flag=False 12 if touzhu <= 0: 13 print('投注無效,請重新投注') 14 elif touzhu > money: 15 print('投注超過了你的資產總和,請重新投注') 16 else: 17 shuzi=randint(1,6)+randint(1,6) 18 #print('本次搖出的點數為:%d'%shuzi) 19 cun=shuzi 20 if shuzi==7 or shuzi==11: 21 print('恭喜,你贏了!') 22 money+=touzhu 23 elif shuzi==2 or shuzi==3 or shuzi==12: 24 print('不好意思,你輸了!') 25 #zhuangjia+=touzhu 26 money-=touzhu 27 else: 28 flag=True 29 zongtouzhu = 0 30 while flag: 31 jiazhu=-1 32 try: 33 jiazhu=int(input('你的加註金額是:')) 34 except ValueError: 35 print('輸入為空',end=', ') 36 finally: 37 zongtouzhu+=jiazhu 38 flag=False 39 if zongtouzhu+touzhu > money: 40 print('加註超過了你的資產總和,請重新加註') 41 zongtouzhu-=jiazhu 42 flag=True 43 elif jiazhu < 0: 44 #可以不加註,則加註為0 45 print('加註無效,請重新加註') 46 flag=True 47 zongtouzhu-=jiazhu 48 else: 49 shuzi=randint(1,6)+randint(1,6) 50 #print('本次搖出的點數為:%d'%(shuzi)) 51 if shuzi==7: 52 print('不好意思,你輸了!') 53 money-=(touzhu+zongtouzhu) 54 #zhuangjia+=touzhu 55 elif shuzi==cun: 56 print('恭喜,你贏了!') 57 money+=(touzhu+zongtouzhu) 58 else: 59 flag=True 60 #print(money) 61 print('你已經破產,遊戲結束!')
本來按照遊戲原本的思路去寫的,寫著寫著就想要不第二次以後搖色子來個加註吧,這樣更刺激嘛,哈哈哈哈,另這個版本當輸入為空時,提示為無效,可以重新投注,遊戲繼續,
不會出現紅色異常的,其他就沒什麼改進了,想加個介面做成一個完整的搖色子游戲,可是這塊還不會,繼續加油了
還請路過的大佬指點不足啊