🐛 Splitting
This commit is contained in:
@ -132,61 +132,12 @@ def blackjackContinue(channel):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
logThis("Testing if all are standing")
|
||||
for user in data["blackjack games"][channel]["user hands"]:
|
||||
if data["blackjack games"][channel]["user hands"][user]["hit"] == False:
|
||||
data["blackjack games"][channel]["user hands"][user]["standing"] = True
|
||||
|
||||
if data["blackjack games"][channel]["user hands"][user]["standing"] == False:
|
||||
allStanding = False
|
||||
|
||||
if calcHandValue(data["blackjack games"][channel]["user hands"][user]["hand"]) >= 21 or data["blackjack games"][channel]["user hands"][user]["doubled"]:
|
||||
data["blackjack games"][channel]["user hands"][user]["standing"] = True
|
||||
else:
|
||||
preAllStanding = False
|
||||
|
||||
data["blackjack games"][channel]["user hands"][user]["hit"] = False
|
||||
|
||||
if data["blackjack games"][channel]["user hands"][user]["split"] > 0:
|
||||
if data["blackjack games"][channel]["user hands"][user]["other hand"]["hit"] == False:
|
||||
data["blackjack games"][channel]["user hands"][user]["other hand"]["standing"] = True
|
||||
|
||||
if data["blackjack games"][channel]["user hands"][user]["other hand"]["standing"] == False:
|
||||
allStanding = False
|
||||
|
||||
if calcHandValue(data["blackjack games"][channel]["user hands"][user]["other hand"]["hand"]) >= 21 or data["blackjack games"][channel]["user hands"][user]["other hand"]["doubled"]:
|
||||
data["blackjack games"][channel]["user hands"][user]["other hand"]["standing"] = True
|
||||
else:
|
||||
preAllStanding = False
|
||||
|
||||
data["blackjack games"][channel]["user hands"][user]["other hand"]["hit"] = False
|
||||
|
||||
if data["blackjack games"][channel]["user hands"][user]["split"] > 1:
|
||||
if data["blackjack games"][channel]["user hands"][user]["third hand"]["hit"] == False:
|
||||
data["blackjack games"][channel]["user hands"][user]["third hand"]["standing"] = True
|
||||
|
||||
if data["blackjack games"][channel]["user hands"][user]["third hand"]["standing"] == False:
|
||||
allStanding = False
|
||||
|
||||
if calcHandValue(data["blackjack games"][channel]["user hands"][user]["third hand"]["hand"]) >= 21 or data["blackjack games"][channel]["user hands"][user]["third hand"]["doubled"]:
|
||||
data["blackjack games"][channel]["user hands"][user]["third hand"]["standing"] = True
|
||||
else:
|
||||
preAllStanding = False
|
||||
|
||||
data["blackjack games"][channel]["user hands"][user]["third hand"]["hit"] = False
|
||||
|
||||
if data["blackjack games"][channel]["user hands"][user]["split"] > 2:
|
||||
if data["blackjack games"][channel]["user hands"][user]["fourth hand"]["hit"] == False:
|
||||
data["blackjack games"][channel]["user hands"][user]["fourth hand"]["standing"] = True
|
||||
|
||||
if data["blackjack games"][channel]["user hands"][user]["fourth hand"]["standing"] == False:
|
||||
allStanding = False
|
||||
|
||||
if calcHandValue(data["blackjack games"][channel]["user hands"][user]["fourth hand"]["hand"]) >= 21 or data["blackjack games"][channel]["user hands"][user]["fourth hand"]["doubled"]:
|
||||
data["blackjack games"][channel]["user hands"][user]["fourth hand"]["standing"] = True
|
||||
else:
|
||||
preAllStanding = False
|
||||
|
||||
data["blackjack games"][channel]["user hands"][user]["fourth hand"]["hit"] = False
|
||||
try:
|
||||
data["blackjack games"][channel]["user hands"][user], allStanding, preAllStanding = testIfStanding(data["blackjack games"][channel]["user hands"][user],allStanding,preAllStanding,True)
|
||||
except:
|
||||
logThis("Error in testing if all are standing (error code 1331)")
|
||||
|
||||
if allStanding:
|
||||
data["blackjack games"][channel]["all standing"] = True
|
||||
@ -196,7 +147,10 @@ def blackjackContinue(channel):
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
blackjackDraw.drawImage(channel)
|
||||
try:
|
||||
blackjackDraw.drawImage(channel)
|
||||
except:
|
||||
logThis("Error drawing blackjack table (error code 1340)")
|
||||
|
||||
if allStanding:
|
||||
if done == False:
|
||||
@ -212,6 +166,31 @@ def blackjackContinue(channel):
|
||||
firstRoundMessage = ""
|
||||
return "You have 2 minutes to either hit or stand with \"!blackjack hit\" or \"!blackjack stand\""+firstRoundMessage+". It's assumed you're standing if you don't make a choice.", False, done
|
||||
|
||||
def testIfStanding(hand,allStanding,preAllStanding,topLevel):
|
||||
if hand["hit"] == False:
|
||||
hand["standing"] = True
|
||||
|
||||
if hand["standing"] == False:
|
||||
allStanding = False
|
||||
|
||||
if calcHandValue(hand["hand"]) >= 21 or hand["doubled"]:
|
||||
hand["standing"] = True
|
||||
else:
|
||||
preAllStanding = False
|
||||
|
||||
hand["hit"] = False
|
||||
|
||||
if topLevel:
|
||||
if hand["split"] >= 1:
|
||||
hand["other hand"], allstanding, preAllStanding = testIfStanding(hand["other hand"],allStanding,preAllStanding,False)
|
||||
if hand["split"] >= 2:
|
||||
hand["third hand"], allstanding, preAllStanding = testIfStanding(hand["third hand"],allStanding,preAllStanding,False)
|
||||
if hand["split"] >= 3:
|
||||
hand["fourth hand"], allstanding, preAllStanding = testIfStanding(hand["fourth hand"],allStanding,preAllStanding,False)
|
||||
|
||||
return hand, allStanding, preAllStanding
|
||||
|
||||
|
||||
# When players try to hit
|
||||
def blackjackHit(channel,user,handNumber = 0):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
@ -311,7 +290,7 @@ def blackjackDouble(channel,user,handNumber = 0):
|
||||
hand = data["blackjack games"][channel]["user hands"][user]["other hand"]
|
||||
elif handNumber == 3:
|
||||
hand = data["blackjack games"][channel]["user hands"][user]["third hand"]
|
||||
elif handNumber == 3:
|
||||
elif handNumber == 4:
|
||||
hand = data["blackjack games"][channel]["user hands"][user]["fourth hand"]
|
||||
else:
|
||||
logThis(user+" tried to double without specifying which hand")
|
||||
|
@ -1,12 +1,13 @@
|
||||
import json
|
||||
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
from funcs import logThis
|
||||
|
||||
border = 100
|
||||
placement = [0,0]
|
||||
rotation = 0
|
||||
|
||||
def drawImage(channel):
|
||||
logThis("Drawing blackjack table",channel)
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
@ -22,37 +23,43 @@ def drawImage(channel):
|
||||
dealerBusted = data["blackjack games"][channel]["dealer busted"]
|
||||
dealerBlackjack = data["blackjack games"][channel]["dealer blackjack"]
|
||||
|
||||
if data["blackjack games"][channel]["all standing"] == False:
|
||||
dealerHand = drawHand(data["blackjack games"][channel]["dealer hand"],True,False,False)
|
||||
else:
|
||||
dealerHand = drawHand(data["blackjack games"][channel]["dealer hand"],False,dealerBusted,dealerBlackjack)
|
||||
try:
|
||||
if data["blackjack games"][channel]["all standing"] == False:
|
||||
dealerHand = drawHand(data["blackjack games"][channel]["dealer hand"],True,False,False)
|
||||
else:
|
||||
dealerHand = drawHand(data["blackjack games"][channel]["dealer hand"],False,dealerBusted,dealerBlackjack)
|
||||
except:
|
||||
logThis("Error drawing dealer hand (error code 1341a)")
|
||||
|
||||
table.paste(dealerHand,(800-borderSmol,20-borderSmol),dealerHand)
|
||||
|
||||
for x in range(len(hands)):
|
||||
key, value = list(hands.items())[x]
|
||||
logThis("drawing "+key+"'s hand")
|
||||
userHand = drawHand(value["hand"],False,value["busted"],value["blackjack"])
|
||||
|
||||
if value["split"] == 3:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),280-borderSmol),userHand)
|
||||
userOtherHand = drawHand(value["other hand"]["hand"],False,value["other hand"]["busted"],value["other hand"]["blackjack"])
|
||||
table.paste(userOtherHand,(32-borderSmol+(384*placement[x]),420-borderSmol),userOtherHand)
|
||||
userThirdHand = drawHand(value["third hand"]["hand"],False,value["third hand"]["busted"],value["third hand"]["blackjack"])
|
||||
table.paste(userThirdHand,(32-borderSmol+(384*placement[x]),560-borderSmol),userOtherHand)
|
||||
userFourthHand = drawHand(value["fourth hand"]["hand"],False,value["fourth hand"]["busted"],value["fourth hand"]["blackjack"])
|
||||
table.paste(userFourthHand,(32-borderSmol+(384*placement[x]),700-borderSmol),userOtherHand)
|
||||
elif value["split"] == 2:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),420-borderSmol),userHand)
|
||||
userOtherHand = drawHand(value["other hand"]["hand"],False,value["other hand"]["busted"],value["other hand"]["blackjack"])
|
||||
table.paste(userOtherHand,(32-borderSmol+(384*placement[x]),560-borderSmol),userOtherHand)
|
||||
userThirdHand = drawHand(value["third hand"]["hand"],False,value["third hand"]["busted"],value["third hand"]["blackjack"])
|
||||
table.paste(userThirdHand,(32-borderSmol+(384*placement[x]),700-borderSmol),userOtherHand)
|
||||
elif value["split"] == 1:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),560-borderSmol),userHand)
|
||||
userOtherHand = drawHand(value["other hand"]["hand"],False,value["other hand"]["busted"],value["other hand"]["blackjack"])
|
||||
table.paste(userOtherHand,(32-borderSmol+(384*placement[x]),700-borderSmol),userOtherHand)
|
||||
else:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),680-borderSmol),userHand)
|
||||
try:
|
||||
if value["split"] == 3:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),280-borderSmol),userHand)
|
||||
userOtherHand = drawHand(value["other hand"]["hand"],False,value["other hand"]["busted"],value["other hand"]["blackjack"])
|
||||
table.paste(userOtherHand,(32-borderSmol+(384*placement[x]),420-borderSmol),userOtherHand)
|
||||
userThirdHand = drawHand(value["third hand"]["hand"],False,value["third hand"]["busted"],value["third hand"]["blackjack"])
|
||||
table.paste(userThirdHand,(32-borderSmol+(384*placement[x]),560-borderSmol),userThirdHand)
|
||||
userFourthHand = drawHand(value["fourth hand"]["hand"],False,value["fourth hand"]["busted"],value["fourth hand"]["blackjack"])
|
||||
table.paste(userFourthHand,(32-borderSmol+(384*placement[x]),700-borderSmol),userFourthHand)
|
||||
elif value["split"] == 2:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),420-borderSmol),userHand)
|
||||
userOtherHand = drawHand(value["other hand"]["hand"],False,value["other hand"]["busted"],value["other hand"]["blackjack"])
|
||||
table.paste(userOtherHand,(32-borderSmol+(384*placement[x]),560-borderSmol),userOtherHand)
|
||||
userThirdHand = drawHand(value["third hand"]["hand"],False,value["third hand"]["busted"],value["third hand"]["blackjack"])
|
||||
table.paste(userThirdHand,(32-borderSmol+(384*placement[x]),700-borderSmol),userThirdHand)
|
||||
elif value["split"] == 1:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),560-borderSmol),userHand)
|
||||
userOtherHand = drawHand(value["other hand"]["hand"],False,value["other hand"]["busted"],value["other hand"]["blackjack"])
|
||||
table.paste(userOtherHand,(32-borderSmol+(384*placement[x]),700-borderSmol),userOtherHand)
|
||||
else:
|
||||
table.paste(userHand,(32-borderSmol+(384*placement[x]),680-borderSmol),userHand)
|
||||
except:
|
||||
logThis("Error drawing player hands (error code 1341b)")
|
||||
|
||||
textWidth = fnt.getsize(key)[0]
|
||||
if textWidth < 360:
|
||||
@ -69,11 +76,13 @@ def drawImage(channel):
|
||||
textImage.text((32+(384*placement[x])+117-int(textWidth/2)+2,1020+2),key,fill=(0,0,0), font=fntSmol)
|
||||
textImage.text((32+(384*placement[x])+117-int(textWidth/2),1015),key,fill=(255,255,255), font=fntSmol)
|
||||
|
||||
logThis("Saving table image")
|
||||
table.save("resources/games/blackjackTables/blackjackTable"+channel+".png")
|
||||
|
||||
return
|
||||
|
||||
def drawHand(hand, dealer, busted, blackjack):
|
||||
logThis("Drawing hand "+str(hand))
|
||||
fnt = ImageFont.truetype('resources/futura-bold.ttf', 200)
|
||||
fnt2 = ImageFont.truetype('resources/futura-bold.ttf', 120)
|
||||
length = len(hand)
|
||||
@ -102,6 +111,7 @@ def drawHand(hand, dealer, busted, blackjack):
|
||||
w, h = background.size
|
||||
textHeight = 290+border
|
||||
|
||||
#logThis("Drawing busted/blackjack")
|
||||
if busted:
|
||||
textWidth = fnt.getsize("BUSTED")[0]
|
||||
textImage.text((int(w/2)-int(textWidth/2)-10,textHeight+20-10),"BUSTED",fill=(0,0,0), font=fnt)
|
||||
@ -125,4 +135,5 @@ def drawHand(hand, dealer, busted, blackjack):
|
||||
textImage.text((int(w/2)-int(textWidth/2)+3,textHeight+3),"BLACKJACK",fill=(255,255,255), font=fnt2)
|
||||
textImage.text((int(w/2)-int(textWidth/2),textHeight),"BLACKJACK",fill=(155,123,0), font=fnt2)
|
||||
|
||||
#logThis("Returning resized image")
|
||||
return background.resize((int(w/3.5),int(h/3.5)),resample=Image.BILINEAR)
|
||||
|
Reference in New Issue
Block a user