From 9aff9cf633edc2e28ed878bd966100b15e10e967 Mon Sep 17 00:00:00 2001 From: dougalcom Date: Wed, 13 Apr 2022 11:25:32 -0500 Subject: [PATCH 1/2] commit --- bjack.py | 61 +++++++++++++++++++++++++--------------------------- savegame.txt | 2 +- 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/bjack.py b/bjack.py index cf8cfc8..d555c37 100644 --- a/bjack.py +++ b/bjack.py @@ -1,9 +1,15 @@ -import random, time, deck, beepy +import random, time, deck -version = '1.72' +# customizable settings +defaultbet = 10 # how much bet to start with +defaultmoney = 1000 # how much money to start with +delaytime = 0.5 # seconds to pause between card deals +scrollamount = 20 # how many lines to 'clear' the screen + +version = '1.76' game = True -standing, dealToPlayer, double = [False]*3 -playerwins, dealerwins, playersum, dealersum, moves = [0] * 5 +standing, dealToPlayer, double = [False] * 3 +playerwins, dealerwins, playersum, dealersum, moves, money, bet = [0] * 7 cycles = 1 dealerhand, playerhand, turncard = [], [], [] gameDeck = deck.fullDeck.copy() @@ -12,8 +18,8 @@ def savegame(): global bet, money f = open(savegamefile, "w+") - f.writelines(str(bet)+'\n') - f.writelines(str(money)) + f.writelines(str(round(bet))+'\n') + f.writelines(str(round(money))) f.close() def loadgame(): @@ -24,14 +30,18 @@ def loadgame(): bet = int(lines[0]) money = int(lines[1]) -def resetgame(): - global game, standing, moves, dealerhand, dealersum, playerhand, playersum, turncard, dealToPlayer, double, cycles - for i in range(20): print() +def resetgame(howdeep=''): + global bet, money, gameDeck, game, standing, moves, dealerhand, dealersum, playerhand, playersum, turncard, dealToPlayer, double, cycles + for i in range(scrollamount): print() game = True standing, dealToPlayer, double = [False]*3 playersum, dealersum, moves = [0] * 3 dealerhand, playerhand, turncard = [], [], [] cycles += 1 + if howdeep == 'deeply': + bet = defaultbet + money = defaultmoney + gameDeck = deck.fullDeck.copy() savegame() def cardname(card): return str(card[1]) + str(card[2]) @@ -85,46 +95,35 @@ def gameovercheck(): if game is True and playersum > 21: game = False print('\ngame over: player busts, dealer wins\n') - sound('dealerwins') dealerwins += 1 money -= bet if double: money -= bet if game is True and dealersum > 21: game = False print('\ngame over: dealer busts, player wins\n') - sound('playerwins') playerwins += 1 money += bet if double: money += bet if game is True and standing is True and dealersum == playersum and dealersum > 16: game = False print('\ngame over: draw\n') - sound('tie') if game is True and standing is True and playersum > dealersum > 16: game = False print('\ngame over: player wins\n') - sound('playerwins') playerwins += 1 money += bet if double: money += bet if game is True and standing is True and dealersum > playersum and dealersum > 16: game = False print('\ngame over: dealer wins\n') - sound('dealerwins') dealerwins += 1 money -= bet if double: money -= bet -def sound(soundType): - if soundType == 'playerwins': beepy.beep(sound='coin') - elif soundType == 'dealerwins': beepy.beep(sound='error') - elif soundType == 'tie': beepy.beep(sound='ping') - elif soundType == 'blackjack': beepy.beep(sound='ready') - loadgame() while True: - if moves > 0: time.sleep(0.6) + if moves > 0: time.sleep(delaytime) moves += 1 if moves == 1: if dealerwins > 0 or playerwins > 0: winRate = round(playerwins / (dealerwins + playerwins) * 100) @@ -140,18 +139,15 @@ def sound(soundType): game = False flipturncard() print('\ngame over: push\n') - sound('tie') if len(turncard) > 0 and turncard[0][0] + dealersum == 21: game = False flipturncard() print('\ngame over: dealer wins with a Blackjack\n') - sound('dealerwins') dealerwins += 1 money -= bet if playersum == 21: game = False print('\ngame over: player wins with a Blackjack\n') - sound('blackjack') playerwins += 1 money += bet*1.5 else: print('\n--- move ' + str(moves) + ' ---') @@ -160,15 +156,15 @@ def sound(soundType): dealToPlayer = False if standing is True and len(turncard) > 0: flipturncard() elif game is True and standing is True and dealersum < 17: dealcard('dealer') - if playersum == 21: standing = True sumcards() printhands() + if playersum == 21: standing = True gameovercheck() if game is False: - print('you have $' + str(round(money,0))) + print('you have $' + str(round(money))) if money < 1: - print('\n* you are bankrupt. time to quit. *\n') - sound('dealerwins') + print('\n* you are bankrupt. time to quit! *\n') + resetgame('deeply') exit() choice = input('[enter] next round at $' + str(bet) + ', [c]hange bet, [r]eset, or [q]uit? ') if choice == 'q': @@ -184,10 +180,11 @@ def sound(soundType): time.sleep(2) resetgame() elif choice == 'r': - bet = 10 - money = 1000 - gameDeck = deck.fullDeck.copy() - resetgame() + resetconfirm = input('are you sure you want to start over with $' + str(defaultmoney) + '? [y/n]') + if resetconfirm == 'y' or resetconfirm == 'Y': + resetgame('deeply') + else: + resetgame() elif choice =='' : resetgame() else: print('what?') elif game is True and standing is False and moves == 1 and money >= (bet*2): diff --git a/savegame.txt b/savegame.txt index a76ae57..767647e 100644 --- a/savegame.txt +++ b/savegame.txt @@ -1,2 +1,2 @@ 10 -1010 \ No newline at end of file +970 \ No newline at end of file From 49f6e59a9e78da3bebaec80700c55333cf95b4e8 Mon Sep 17 00:00:00 2001 From: dougalcom Date: Wed, 13 Apr 2022 15:51:50 -0500 Subject: [PATCH 2/2] bug fix --- bjack.py | 8 ++++---- savegame.txt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bjack.py b/bjack.py index d555c37..64bc62b 100644 --- a/bjack.py +++ b/bjack.py @@ -6,7 +6,7 @@ delaytime = 0.5 # seconds to pause between card deals scrollamount = 20 # how many lines to 'clear' the screen -version = '1.76' +version = '1.77' game = True standing, dealToPlayer, double = [False] * 3 playerwins, dealerwins, playersum, dealersum, moves, money, bet = [0] * 7 @@ -100,7 +100,7 @@ def gameovercheck(): if double: money -= bet if game is True and dealersum > 21: game = False - print('\ngame over: dealer busts, player wins\n') + print('\ngame over: dealer busts, player wins $' + str(bet) + '\n') playerwins += 1 money += bet if double: money += bet @@ -109,7 +109,7 @@ def gameovercheck(): print('\ngame over: draw\n') if game is True and standing is True and playersum > dealersum > 16: game = False - print('\ngame over: player wins\n') + print('\ngame over: player wins $' + str(bet) + '\n') playerwins += 1 money += bet if double: money += bet @@ -147,7 +147,7 @@ def gameovercheck(): money -= bet if playersum == 21: game = False - print('\ngame over: player wins with a Blackjack\n') + print('\ngame over: player wins $' + str(bet*1.5) + ' with a Blackjack\n') playerwins += 1 money += bet*1.5 else: print('\n--- move ' + str(moves) + ' ---') diff --git a/savegame.txt b/savegame.txt index 767647e..df2a2ea 100644 --- a/savegame.txt +++ b/savegame.txt @@ -1,2 +1,2 @@ 10 -970 \ No newline at end of file +920 \ No newline at end of file