Ledger reimplemented with SQLite3
This commit is contained in:
42
BlackJack.py
42
BlackJack.py
@@ -48,7 +48,10 @@ def generateHand(hand, deck, handSize = 2):
|
||||
addCardToHand(hand, deck)
|
||||
i += 1
|
||||
|
||||
def handNumbersToCards(hand): return [convertNumberToCard(a) for a in hand]
|
||||
def handNumbersToCards(hand):
|
||||
cards = ""
|
||||
for card in hand:
|
||||
cards += convertNumberToCard(card)
|
||||
|
||||
def getHandTotal(hand):
|
||||
cardValue = lambda c: min(c % 13 + 1, 10)
|
||||
@@ -60,23 +63,7 @@ def getHandTotal(hand):
|
||||
if (i + card) > 21:
|
||||
card = 1
|
||||
i += card
|
||||
return i
|
||||
|
||||
class BlackJackLedger(Ledger):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
def updateLedger(self, data, oldData):
|
||||
ID, money, wins, losses = oldData
|
||||
_, newMoney, newWins, newLosses = data
|
||||
|
||||
wins += newWins
|
||||
losses += newLosses
|
||||
money += newMoney
|
||||
data = [ID, money, wins, losses]
|
||||
return data
|
||||
|
||||
|
||||
return i
|
||||
|
||||
class BlackJack:
|
||||
def __init__(self, recv, send):
|
||||
@@ -91,7 +78,7 @@ class BlackJack:
|
||||
self.recv = recv
|
||||
self.send = send
|
||||
|
||||
ledger = BlackJackLedger()
|
||||
self.ledger = Ledger.Ledger()
|
||||
|
||||
def getPH(self):
|
||||
return self.playerHand
|
||||
@@ -152,9 +139,10 @@ class BlackJack:
|
||||
validInput = False
|
||||
gameOver = False
|
||||
playerStood = False
|
||||
playerStats = self.readLedger(ID)
|
||||
playerStats = self.ledger.readLedger(ID)
|
||||
if playerStats is None:
|
||||
playerStats = (ID, 100, 0, 0)
|
||||
self.ledger.writeLedger(ID)
|
||||
playerStats = self.ledger.readLedger
|
||||
|
||||
while not gameOver:
|
||||
playerWinState = self.checkHandState(self.playerHand)
|
||||
@@ -199,13 +187,17 @@ class BlackJack:
|
||||
"\n" + "Dealers hand = " + str(getHandTotal(self.dealerHand)) + ": " + handNumbersToCards(self.dealerHand))
|
||||
if playerWinState == "w":
|
||||
await self.send("You won!")
|
||||
# self.writeLedger(ID, 2*bet, True)
|
||||
win = (2*bet, 1, 0, ID)
|
||||
self.ledger.updateLedger(playerStats, win)
|
||||
elif playerWinState == "l":
|
||||
await self.send("You busted!")
|
||||
# self.writeLedger(ID, -bet, False)
|
||||
loss = (-bet, 0, 1, ID)
|
||||
self.ledger.updateLedger(playerStats, loss)
|
||||
elif dealerWinState == "w":
|
||||
await self.send("The Dealer reached 21 before you!")
|
||||
# self.writeLedger(ID, -bet, False)
|
||||
loss = (-bet, 0, 1, ID)
|
||||
self.ledger.updateLedger(playerStats, loss)
|
||||
elif dealerWinState == "l":
|
||||
await self.send("The Dealer busted before you!")
|
||||
# self.writeLedger(ID, 2*bet, True)
|
||||
win = (2*bet, 1, 0, ID)
|
||||
self.ledger.updateLedger(playerStats, win)
|
||||
|
||||
Reference in New Issue
Block a user