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