/
game.py
103 lines (76 loc) · 2.37 KB
/
game.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import sys
import os
import time
from player import Player
from player import Dealer
from card import Deck
class Game(object):
def setup(self):
self.deck = Deck()
self.player = Player()
self.dealer = Dealer()
for _ in range(2):
self.player.hit(self.deck.next_card())
self.dealer.hit(self.deck.next_card())
def player_turn(self):
player_choice = input("[H]it, [S]tay, or [Q]uit?").lower()
os.system('clear')
if player_choice == 'h':
self.player.hit(self.deck.next_card())
self.display_info()
if self.player.hand_value() > 21:
pass
else:
self.player_turn()
elif player_choice == 's':
pass
elif player_choice == 'q':
sys.exit()
else:
self.player_turn
def dealer_turn(self):
while self.dealer.hand_value() <= 16:
self.display_info(True)
time.sleep(2)
self.dealer.hit(self.deck.next_card())
def check_for_outcome(self):
if self.dealer.hand_value() > 21:
print("Dealer bust! You Win!")
self.play_again()
elif self.player.hand_value() > self.dealer.hand_value():
print("You win!")
elif self.player.hand_value() < self.dealer.hand_value():
print("You lose!")
elif self.player.hand_value() == self.dealer.hand_value():
print("Push!")
def check_for_bust(self):
if self.player.hand_value() > 21:
print("You bust! You lose!")
self.play_again()
def display_info(self,show = False):
os.system('clear')
print("Blackjack")
print("="*20)
if show:
print(self.dealer)
else:
print(self.dealer.hidden())
print(self.player)
print("="*20)
def play_again(self):
play_again = input("Do you want to play again? [Y]/[N]?").lower()
if play_again == 'y':
Game()
else:
sys.exit()
def __init__(self):
self.setup()
self.display_info()
self.player_turn()
self.check_for_bust()
self.display_info(True)
self.dealer_turn()
self.display_info(True)
self.check_for_outcome()
self.play_again()
Game()