initial commit
This commit is contained in:
commit
39f56a3b10
83 files changed
+3583
No files matched your search
@@ -0,0 +1,131 @@
|
||||
import random
|
||||
|
||||
ranks = [2, 3, 4, 5, 6, 7, 8, 9, 10, "Jack", "Queen", "King", "Ace"]
|
||||
suits = ["of Clubs", "of Diamonds", "of Hearts", "of Spades"]
|
||||
player_hand = []
|
||||
dealer_hand = []
|
||||
deck = []
|
||||
|
||||
class Player:
|
||||
def draw(self):
|
||||
card = random.choice(deck)
|
||||
deck.remove(card)
|
||||
player_hand.append(card)
|
||||
return card
|
||||
|
||||
def hand_value(self):
|
||||
total = 0
|
||||
for _ in player_hand:
|
||||
total += get_value(_)
|
||||
return total
|
||||
|
||||
class Dealer:
|
||||
def draw(self):
|
||||
card = random.choice(deck)
|
||||
deck.remove(card)
|
||||
dealer_hand.append(card)
|
||||
return card
|
||||
|
||||
def hand_value(self):
|
||||
total = 0
|
||||
for _ in dealer_hand:
|
||||
total += get_value(_)
|
||||
return total
|
||||
|
||||
|
||||
def create_deck():
|
||||
counter = 0
|
||||
x = 0
|
||||
for _ in range(len(suits)):
|
||||
y = 0
|
||||
for _ in range(len(ranks)):
|
||||
deck.append(f"{ranks[y]} {suits[x]}")
|
||||
y += 1
|
||||
counter += 1
|
||||
x += 1
|
||||
return deck
|
||||
|
||||
def get_value(card):
|
||||
if "2" in card:
|
||||
return 2
|
||||
if "3" in card:
|
||||
return 3
|
||||
if "4" in card:
|
||||
return 4
|
||||
if "5" in card:
|
||||
return 5
|
||||
if "6" in card:
|
||||
return 6
|
||||
if "7" in card:
|
||||
return 7
|
||||
if "8" in card:
|
||||
return 8
|
||||
if "9" in card:
|
||||
return 9
|
||||
if "10" in card:
|
||||
return 10
|
||||
if "Jack" in card or "Queen" in card or "King" in card:
|
||||
return 10
|
||||
if "Ace" in card:
|
||||
return 11
|
||||
return None
|
||||
|
||||
def main():
|
||||
bank = 1000
|
||||
while True:
|
||||
global player
|
||||
global dealer
|
||||
player = Player()
|
||||
dealer = Dealer()
|
||||
create_deck()
|
||||
p_stand = False
|
||||
d_stand = False
|
||||
for _ in range(2):
|
||||
player.draw()
|
||||
dealer.draw()
|
||||
print(f"your current balance: {bank}")
|
||||
bet = int(input("Enter your bet: "))
|
||||
bank -= bet
|
||||
|
||||
while True:
|
||||
print(f"Your hand: {player_hand} value: {player.hand_value()}")
|
||||
print()
|
||||
print(f"dealer card: {dealer_hand} value: {dealer.hand_value()}")
|
||||
print()
|
||||
|
||||
if not p_stand:
|
||||
if input("hit or stand (h/s): ") == "h":
|
||||
print(f"you draw a card: {player.draw()}")
|
||||
print()
|
||||
else:
|
||||
p_stand = True
|
||||
|
||||
if not d_stand:
|
||||
if dealer.hand_value() < 17:
|
||||
dealer.draw()
|
||||
print(f"dealer draws a card: {dealer.draw()}")
|
||||
print()
|
||||
else:
|
||||
d_stand = True
|
||||
|
||||
if player.hand_value() > 21:
|
||||
print("you loose")
|
||||
player_hand.clear()
|
||||
dealer_hand.clear()
|
||||
break
|
||||
if player.hand_value() == 21:
|
||||
print(f"you win ({bet * 2})")
|
||||
bank = bank + bet * 2
|
||||
player_hand.clear()
|
||||
dealer_hand.clear()
|
||||
deck.clear()
|
||||
break
|
||||
|
||||
if bank == 0:
|
||||
print("YOU HAVE NO MONEY")
|
||||
break
|
||||
if input("Do you want to play again? (y/n): ") == "n":
|
||||
break
|
||||
|
||||
|
||||
main()
|
||||
Reference in new issue
Block a user