The play_game function takes functions as input
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
123672601259147265:100:0:0
|
||||
123672601259147265:100:0:0
|
||||
123672601259147265:100:0:0
|
||||
123672601259147265:100:0:0
|
||||
|
||||
Reference in New Issue
Block a user