| 399 | |
| 400 | |
| 401 | class BlackJack: |
| 402 | def __init__(self, username): |
| 403 | self.deck = Deck() |
| 404 | self.dealer = Dealer("Bob") |
| 405 | self.player = Player(username.title(), 1000) |
| 406 | self.recorder = Recorder() |
| 407 | self.go_on = True |
| 408 | self.first_hand = True |
| 409 | self.choice = None |
| 410 | self.winner = None |
| 411 | self.bust = False |
| 412 | self.res = None |
| 413 | |
| 414 | def play(self): |
| 415 | while self.player.chips: |
| 416 | self.initial_game() |
| 417 | self.in_bet() |
| 418 | self.deal_card() |
| 419 | while self.go_on: |
| 420 | self.choice = self.menu() |
| 421 | # self.player.speak() |
| 422 | self.chips_manage() |
| 423 | try: |
| 424 | self.card_manage() |
| 425 | except ValueError as res: |
| 426 | self.bust = True |
| 427 | self.go_on = False |
| 428 | self.res = res |
| 429 | if not self.bust: |
| 430 | self.is_surrender() |
| 431 | self.winner = self.get_winner() |
| 432 | self.res = "Winner is " + self.winner |
| 433 | os.system("clear") |
| 434 | self.calculate_chips() |
| 435 | self.result_exhibit() |
| 436 | self.dealer.unveiling() |
| 437 | self.player.unveiling() |
| 438 | self.recorder.record( |
| 439 | self.winner, |
| 440 | self.player.chips.amount, |
| 441 | self.player.point, |
| 442 | self.dealer.point, |
| 443 | ) |
| 444 | |
| 445 | self.recorder.draw_diagram() |
| 446 | ending = "\n\tSorry I lost all chips!\n\tTime to say goodbye." |
| 447 | self.player.speak(ending) |
| 448 | print("\n" + "-" * 20 + " End Game " + "-" * 20) |
| 449 | |
| 450 | def initial_game(self): |
| 451 | self.go_on = True |
| 452 | self.first_hand = True |
| 453 | self.choice = None |
| 454 | self.winner = None |
| 455 | self.bust = False |
| 456 | self.deck.rebuilt() |
| 457 | self.deck.shuffle() |
| 458 | self.player.chips.reset_chip() |