The play_game function takes functions as input

This commit is contained in:
2022-11-22 11:30:06 +10:00
parent fd204588b7
commit 0d145f03a3
2 changed files with 26 additions and 26 deletions

View File

@@ -71,7 +71,7 @@ def getHandTotal(hand):
class BlackJack:
def __init__(self):
def __init__(self, recv, send):
self.playerTurn = True
self.deck = generateDeck()
@@ -80,6 +80,9 @@ class BlackJack:
self.dealerHand = []
generateHand(self.dealerHand, self.deck)
self.recv = recv
self.send = send
def getPH(self):
return self.playerHand
@@ -139,14 +142,14 @@ class BlackJack:
validInput = False
gameOver = False
playerStood = False
ID = input("ID: (Unique)")
IDFound = self.findID(ID)[0]
if IDFound:
playerStats = self.readLedger(ID)[1:]
playerStats[0] = ID
else:
self.addToLedger(ID)
playerStats = (ID, 100, 0, 0)
# ID = self.recv("ID: (Unique)")
# IDFound = self.findID(ID)[0]
# if IDFound:
# playerStats = self.readLedger(ID)[1:]
# playerStats[0] = ID
# else:
# self.addToLedger(ID)
# playerStats = (ID, 100, 0, 0)
while not gameOver:
playerWinState = self.checkHandState(self.playerHand)
@@ -158,9 +161,9 @@ class BlackJack:
if gameOver:
continue
print("Players hand = " + str(getHandTotal(self.playerHand)) + ": " + handNumbersToCards(
self.send("Players hand = " + str(getHandTotal(self.playerHand)) + ": " + handNumbersToCards(
self.playerHand) + "\n" + "Dealers hand = ??: " + convertNumberToCard(self.dealerHand[0]) + "??")
play = input("Hit or Stand? (h/s)")
play = self.recv("Hit or Stand? (h/s)")
while not validInput:
if play == "h":
self.hit()
@@ -192,20 +195,20 @@ class BlackJack:
if gameOver:
continue
print("Players hand = " + str(getHandTotal(self.playerHand)) + ": " + handNumbersToCards(self.playerHand) +
self.send("Players hand = " + str(getHandTotal(self.playerHand)) + ": " + handNumbersToCards(self.playerHand) +
"\n" + "Dealers hand = " + str(getHandTotal(self.dealerHand)) + ": " + handNumbersToCards(self.dealerHand))
if playerWinState == "w":
print("You won!")
self.writeLedger(ID, 2*bet, True)
self.send("You won!")
# self.writeLedger(ID, 2*bet, True)
elif playerWinState == "l":
print("You busted!")
self.writeLedger(ID, -bet, False)
self.send("You busted!")
# self.writeLedger(ID, -bet, False)
elif dealerWinState == "w":
print("The Dealer reached 21 before you!")
self.writeLedger(ID, -bet, False)
self.send("The Dealer reached 21 before you!")
# self.writeLedger(ID, -bet, False)
elif dealerWinState == "l":
print("The Dealer busted before you!")
self.writeLedger(ID, 2*bet, True)
self.send("The Dealer busted before you!")
# self.writeLedger(ID, 2*bet, True)
def findID(self, ID):
with open("ledger.txt", "r") as ledger:
@@ -260,9 +263,10 @@ class BlackJack:
with open("ledger.txt", "a") as ledger:
ledger.write("{ID}:{Money}:0:0\n".format(ID=ID, Money=starterCash))
def main():
bj = BlackJack()
terminput = lambda message: input(message)
termoutput = lambda message: print(message)
bj = BlackJack(terminput, termoutput)
bj.play_game(100)

View File

@@ -1,4 +0,0 @@
123672601259147265:100:0:0
123672601259147265:100:0:0
123672601259147265:100:0:0
123672601259147265:100:0:0