用python编21点游戏_【Python3】21点游戏
剛開始學python,試著寫了一個21點游戲。
游戲過程就是,一開始給你和莊家(就是電腦啦)各發兩張牌,但莊家有一張是暗牌。接下來你可以選擇是要牌(hit me)還是停止發牌直接開(stand),要牌就繼續發牌,停止就開始比對雙方的牌,然后判斷勝負。
代碼如下:
import random
from functools import reduce
#游戲
def game():
print('------------------------------------------')
print('歡迎光臨21點!游戲開始!')
user = [randcard(),randcard()]
ai = [randcard(),randcard()]
ai_hide = [ai[0],'暗牌']
print('您的牌組:',user)
print('莊家牌組:',ai_hide)
if sum(user) > 21:
print('游戲結束!您的牌組是',user,',點數是',sum(user),',超過了21點。')
return game()
elif sum(user) == 21:
print('哇哦!剛好21點!')
return game()
elif sum(ai) > 21:
print('恭喜!您獲得了勝利!莊家的點數為',sum(ai),',超過了21點。')
return game()
elif sum(user) > 21 and sum(ai) > 21:
print('平局!您的點數是',sum(user),',莊家的點數是',sum(ai),'。')
return game()
else:
decide(user,ai,ai_hide)
compare(user,ai)
#抉擇
def decide(user,ai,ai_hide):
decision = str(input('請輸入您的決定,“h”是繼續發牌,“s”是停止發牌(h/s):')).lower()
if decision == 'h':
user.append(randcard())
ai.append(randcard())
ai_hide.append('暗牌')
if sum(user) > 21:
print('游戲結束!您的牌組是',user,',點數是',sum(user),',超過了21點。')
return game()
elif sum(ai) > 21:
print('恭喜!您獲得了勝利!莊家的點數為',sum(ai),',超過了21點。')
return game()
elif sum(user) > 21 and sum(ai) > 21:
print('平局!您的點數是',sum(user),',莊家的點數是',sum(ai),',你們的點數都超過了21點。')
return game()
else:
print('您的牌組:',user)
print('莊家牌組:',ai_hide)
return decide(user,ai,ai_hide)
elif decision == 's':
return
#牌組
cards = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13]
#發牌
def randcard():
index = random.randint(0,len(cards)-1)
randcard = cards[index]
del cards[index]
if len(cards) == 0:
print('游戲結束!沒牌發啦!')
return game()
else:
return randcard
#求和
def sum(user):
return reduce(lambda x,y: x+y, user)
#判斷
def compare(user,ai):
minus_user = 21 - sum(user)
minus_ai = 21 - sum(ai)
if minus_user < minus_ai:
print('恭喜!您獲得了勝利!您的點數是',sum(user),',莊家的點數是',sum(ai),'。')
return game()
elif minus_user > minus_ai:
print('非常遺憾!您輸掉了本場對局,您的點數是',sum(user),',莊家的點數是',sum(ai))
return game()
elif minus_user == minus_ai:
print('平局!您的點數是',sum(user),',莊家的點數是',sum(ai),'。')
return game()
#執行
game()
THE END.
總結
以上是生活随笔為你收集整理的用python编21点游戏_【Python3】21点游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python指针引用的区别_C++基础:
- 下一篇: CINNO:手机面板价格或将在 2023