Python İle Blackjack Oyunu
-
Blackjack'e merak sardığım sıralar yazmıştım :), belki birinin işine yarayabilir, örnek olabilir,
from random import choice,shuffle
J,Q,K,A = 10,10,10,11
cards = [A,2,3,4,5,6,7,8,9,10,J,Q,K]
pbet=0
dbet=0
ngame=0
def choseCard():
shuffle(cards)
return choice(cards)
def totalCard(cards):
num_a = cards.count(A)
sumcards = sum(cards)
if sumcards > 21 and num_a > 0:
sumcards -= 10
return sumcards
def blackJack(cards):
black = cards.count(10)
jack = cards.count(A)
if black > 0 and jack > 0 and len(cards) == 2:
return True
else:
return False
while True:
ngame+=1
pcards=[]
dcards=[]
pcards.append(choseCard())
pcards.append(choseCard())
dcards.append(choseCard())
dcards.append(choseCard())
dshow = choice(dcards)
print "# "*30
while True:
print "Dealer has cards [*, %d]" % dshow
tplayer = totalCard(pcards)
print "You have %d cards %s and total\t%d\n" % (len(pcards),str(pcards),tplayer)
if blackJack(pcards):
print "You BlackJack!"
pbet+=1
break
elif tplayer > 21:
print "You Busted."
pbet-=1
dbet+=1
break
answer = raw_input("Hit or Stand? (h or s): ")
if answer == "h":
pcards.append(choseCard())
elif answer == "s":
while True:
tdealer = totalCard(dcards)
# if tdealer < 18:
if tdealer < tplayer:
dcards.append(choseCard())
else:
break
tdealer = totalCard(dcards)
print "Dealer has\t%d cards\t%s and total\t%d" % (len(dcards),str(dcards),tdealer)
print "You have\t%d cards\t%s and total\t%d\n" % (len(pcards),str(pcards),tplayer)
if blackJack(dcards):
print "Dealer BlackJack!"
dbet+=1
elif tdealer > 21:
print "Dealer Busted."
dbet-=1
pbet+=1
else:
if tplayer > tdealer:
print "You Won."
pbet+=1
elif tdealer > tplayer:
print "Dealer Won."
dbet+=1
else:
print "Push."
break
else:
continue
print "Game: %d\t\tPlayer: %d\tDealer: %d" % (ngame,pbet,dbet)
answer = raw_input("Enter for play, q for Quit...")
if answer == "q":
break
print "Bye.\n"