🃏 Created blackjack game
4
.gitignore
vendored
@ -151,6 +151,8 @@ static
|
||||
.vscode/
|
||||
token.txt
|
||||
resources/swcharacters.json
|
||||
resources/games.json
|
||||
resources/games/games.json
|
||||
resources/games/blackjackCards.txt
|
||||
resources/destinyPoints.txt
|
||||
resources/games/tables/
|
||||
gwendolynTest.py
|
||||
|
85
Gwendolyn.py
@ -11,6 +11,7 @@ import random
|
||||
import funcs
|
||||
|
||||
funcs.makeFiles()
|
||||
funcs.shuffle()
|
||||
|
||||
# Gets secret bot token
|
||||
with open("token.txt","r") as f:
|
||||
@ -53,12 +54,13 @@ async def on_message(message):
|
||||
funcs.logThis(message.author.name+" ran \""+message.content+"\"")
|
||||
await message.channel.send("Logging out...")
|
||||
|
||||
with open("resources/games.json","r") as f:
|
||||
with open("resources/games/games.json","r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
data["trivia questions"] = {}
|
||||
data["blackjack games"] = {}
|
||||
|
||||
with open("resources/games.json","w") as f:
|
||||
with open("resources/games/games.json","w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
await client.logout()
|
||||
@ -254,11 +256,11 @@ async def on_message(message):
|
||||
|
||||
funcs.triviaCountPoints(str(message.channel))
|
||||
|
||||
with open("resources/games.json", "r") as f:
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
del data["trivia questions"][str(message.channel)]
|
||||
with open("resources/games.json", "w") as f:
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
funcs.logThis("Time's up for the trivia question in "+str(message.channel))
|
||||
@ -282,7 +284,11 @@ async def on_message(message):
|
||||
elif message.content.lower().startswith("!balance"):
|
||||
funcs.logThis(message.author.name+" ran \""+message.content+"\"")
|
||||
response = funcs.checkBalance(message.author.name.lower())
|
||||
await message.channel.send(message.author.name + " has " + str(response) + " GwendoBucks")
|
||||
if response == 1:
|
||||
new_message = message.author.name + " has " + str(response) + " GwendoBuck"
|
||||
else:
|
||||
new_message = message.author.name + " has " + str(response) + " GwendoBucks"
|
||||
await message.channel.send(new_message)
|
||||
|
||||
#gives money to other player
|
||||
elif message.content.lower().startswith("!give "):
|
||||
@ -300,6 +306,75 @@ async def on_message(message):
|
||||
funcs.logThis("I didn't understand that")
|
||||
await message.channel.send("I didn't understand that")
|
||||
|
||||
elif message.content.lower().startswith("!blackjack"):
|
||||
funcs.logThis(message.author.name+" ran \""+message.content+"\"")
|
||||
if message.content.lower() == "!blackjack" or message.content.lower() == "!blackjack ":
|
||||
new_message = funcs.blackjackStart(str(message.channel))
|
||||
if new_message == "started":
|
||||
cardsLeft = 0
|
||||
with open("resources/games/blackjackCards.txt","r") as f:
|
||||
for line in f:
|
||||
cardsLeft += 1
|
||||
|
||||
if cardsLeft < 50:
|
||||
funcs.shuffle()
|
||||
await message.channel.send("Shuffling the deck...")
|
||||
|
||||
new_message = "Blackjack game started. Use \"!blackjack bet [amount]\" to enter the game within the next 30 seconds."
|
||||
await message.channel.send(new_message)
|
||||
await message.channel.send(file = discord.File("resources/games/tables/blackjackTable"+str(message.channel)+".png"))
|
||||
|
||||
await asyncio.sleep(30)
|
||||
|
||||
gamedone = False
|
||||
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
if len(data["blackjack games"][str(message.channel)]["user hands"]) == 0:
|
||||
gamedone = True
|
||||
await message.channel.send("No one entered the game. Ending the game.")
|
||||
|
||||
while gamedone == False:
|
||||
new_message, allStanding, gamedone = funcs.blackjackContinue(str(message.channel))
|
||||
await message.channel.send(new_message)
|
||||
if gamedone == False:
|
||||
await message.channel.send(file = discord.File("resources/games/tables/blackjackTable"+str(message.channel)+".png"))
|
||||
if allStanding:
|
||||
await asyncio.sleep(5)
|
||||
else:
|
||||
await asyncio.sleep(20)
|
||||
|
||||
new_message = funcs.blackjackFinish(str(message.channel))
|
||||
await message.channel.send(new_message)
|
||||
|
||||
|
||||
|
||||
else:
|
||||
await message.channel.send(new_message)
|
||||
if message.content.lower().startswith("!blackjack bet"):
|
||||
commands = message.content.lower().split(" ")
|
||||
try:
|
||||
amount = int(commands[2])
|
||||
response = funcs.blackjackPlayerDrawHand(str(message.channel),message.author.name,amount)
|
||||
except:
|
||||
funcs.logThis("I didn't understand that")
|
||||
response = "I didn't understand that"
|
||||
await message.channel.send(response)
|
||||
|
||||
if message.content.lower().startswith("!blackjack hit"):
|
||||
response = funcs.blackjackHit(str(message.channel),message.author.name)
|
||||
if response == "accept":
|
||||
await message.add_reaction("👍")
|
||||
else:
|
||||
await message.channel.send(response)
|
||||
|
||||
if message.content.lower().startswith("!blackjack stand"):
|
||||
response = funcs.blackjackStand(str(message.channel),message.author.name)
|
||||
if response == "accept":
|
||||
await message.add_reaction("👍")
|
||||
else:
|
||||
await message.channel.send(response)
|
||||
|
||||
|
||||
# Is a bit sassy sometimes
|
||||
meanWords = ["stupid", "bitch", "fuck", "dumb", "idiot"]
|
||||
|
@ -1,4 +1,4 @@
|
||||
from .gwendolynFuncs import helloFunc, cap, imageFunc, logThis, findWikiPage, makeFiles
|
||||
from .gwendolynFuncs import helloFunc, cap, imageFunc, logThis, findWikiPage, makeFiles, replaceMultiple
|
||||
|
||||
from .swfuncs import parseChar, parseRoll, parseDestiny, critRoll
|
||||
|
||||
@ -6,6 +6,6 @@ from .lookup import spellFunc, monsterFunc
|
||||
|
||||
from .other import nameGen, tavernGen, movieFunc
|
||||
|
||||
from .games import triviaStart, triviaOtherThing, triviaCountPoints, checkBalance, giveMoney
|
||||
from .games import triviaStart, triviaOtherThing, triviaCountPoints, checkBalance, addMoney, giveMoney, shuffle, blackjackStart, blackjackPlayerDrawHand, blackjackContinue, blackjackFinish, blackjackStand, blackjackHit
|
||||
|
||||
from .roll import roll_dice
|
@ -1,2 +1,3 @@
|
||||
from .money import checkBalance, giveMoney
|
||||
from .trivia import triviaCountPoints, triviaStart, triviaOtherThing
|
||||
from .money import checkBalance, giveMoney, addMoney
|
||||
from .trivia import triviaCountPoints, triviaStart, triviaOtherThing
|
||||
from .blackjack import shuffle, blackjackStart, blackjackPlayerDrawHand, blackjackContinue, blackjackFinish, blackjackHit, blackjackStand
|
301
funcs/games/blackjack.py
Normal file
@ -0,0 +1,301 @@
|
||||
import random
|
||||
import json
|
||||
import math
|
||||
|
||||
from shutil import copyfile
|
||||
|
||||
from funcs import logThis, replaceMultiple
|
||||
from . import money, blackjackDraw
|
||||
|
||||
deckAmount = 4
|
||||
|
||||
def shuffle():
|
||||
logThis("Shuffling the blackjack deck")
|
||||
|
||||
with open("resources/games/deckofCards.txt","r") as f:
|
||||
deck = f.read()
|
||||
|
||||
allDecks = deck.split("\n") * 4
|
||||
random.shuffle(allDecks)
|
||||
data = "\n".join(allDecks)
|
||||
|
||||
with open("resources/games/blackjackCards.txt","w") as f:
|
||||
f.write(data)
|
||||
|
||||
return
|
||||
|
||||
def calcHandValue(hand : list):
|
||||
logThis("Calculating hand value")
|
||||
values = [0]
|
||||
|
||||
for card in hand:
|
||||
cardValue = card[0]
|
||||
cardValue = replaceMultiple(cardValue,["0","k","q","j"],"10")
|
||||
if cardValue == "a":
|
||||
length = len(values)
|
||||
for x in range(length):
|
||||
values.append(values[x] + 11)
|
||||
values[x] += 1
|
||||
else:
|
||||
for x in range(len(values)):
|
||||
values[x] += int(cardValue)
|
||||
|
||||
values.sort()
|
||||
|
||||
handValue = values[0]
|
||||
for value in values:
|
||||
if value <= 21:
|
||||
handValue = value
|
||||
|
||||
return handValue
|
||||
|
||||
def drawCard():
|
||||
logThis("drawing a card")
|
||||
with open("resources/games/blackjackCards.txt","r") as f:
|
||||
cards = f.read().split("\n")
|
||||
|
||||
drawnCard = cards[0]
|
||||
cards = cards[1:]
|
||||
data = "\n".join(cards)
|
||||
|
||||
with open("resources/games/blackjackCards.txt","w") as f:
|
||||
f.write(data)
|
||||
|
||||
return drawnCard
|
||||
|
||||
def dealerDraw(channel):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
done = False
|
||||
|
||||
if calcHandValue(data["blackjack games"][channel]["dealer hand"]) < 17:
|
||||
data["blackjack games"][channel]["dealer hand"].append(drawCard())
|
||||
else:
|
||||
done = True
|
||||
|
||||
if calcHandValue(data["blackjack games"][channel]["dealer hand"]) > 21:
|
||||
data["blackjack games"][channel]["dealer busted"] = True
|
||||
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
return done
|
||||
|
||||
def blackjackContinue(channel):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
done = False
|
||||
|
||||
if data["blackjack games"][channel]["open for bets"]:
|
||||
data["blackjack games"][channel]["open for bets"] = False
|
||||
|
||||
|
||||
allStanding = True
|
||||
message = "All players are standing. The dealer now shows his cards and draws."
|
||||
|
||||
if data["blackjack games"][channel]["all standing"]:
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
done = dealerDraw(channel)
|
||||
message = "The dealer draws a card."
|
||||
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
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
|
||||
data["blackjack games"][channel]["user hands"][user]["hit"] = False
|
||||
|
||||
if allStanding:
|
||||
data["blackjack games"][channel]["all standing"] = True
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
else:
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
blackjackDraw.drawImage(channel)
|
||||
|
||||
if allStanding:
|
||||
if done == False:
|
||||
return message, True, done
|
||||
else:
|
||||
return "The dealer is done drawing cards", True, done
|
||||
else:
|
||||
return "You have 20 seconds to either hit or stand with \"!blackjack hit\" or \"!blackjack stand\". It's assumed you're standing if you don't make a choice.", False, done
|
||||
|
||||
def blackjackHit(channel,user):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if data["blackjack games"][channel]["open for bets"] == False:
|
||||
if data["blackjack games"][channel]["user hands"][user]["hit"] == False:
|
||||
if data["blackjack games"][channel]["user hands"][user]["standing"] == False:
|
||||
data["blackjack games"][channel]["user hands"][user]["hand"].append(drawCard())
|
||||
data["blackjack games"][channel]["user hands"][user]["hit"] = True
|
||||
|
||||
handValue = calcHandValue(data["blackjack games"][channel]["user hands"][user]["hand"])
|
||||
|
||||
if handValue == 21:
|
||||
data["blackjack games"][channel]["user hands"][user]["standing"] = True
|
||||
elif handValue > 21:
|
||||
data["blackjack games"][channel]["user hands"][user]["standing"] = True
|
||||
data["blackjack games"][channel]["user hands"][user]["busted"] = True
|
||||
|
||||
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
return "accept"
|
||||
else:
|
||||
logThis(user+" is already standing")
|
||||
return "You can't hit when you're standing"
|
||||
else:
|
||||
logThis(user+" has already hit this round")
|
||||
return "You've already hit this round"
|
||||
else:
|
||||
logThis(user+" tried to hit on the first round")
|
||||
return "You can't hit before you see your cards"
|
||||
|
||||
def blackjackStand(channel,user):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
if data["blackjack games"][channel]["open for bets"] == False:
|
||||
if data["blackjack games"][channel]["user hands"][user]["hit"] == False:
|
||||
if data["blackjack games"][channel]["user hands"][user]["standing"] == False:
|
||||
data["blackjack games"][channel]["user hands"][user]["standing"] = True
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
return "accept"
|
||||
else:
|
||||
logThis(user+" is already standing")
|
||||
return "You're already standing"
|
||||
else:
|
||||
logThis(user+" has already hit this round")
|
||||
return "You've already hit this round"
|
||||
else:
|
||||
logThis(user+" tried to stand on the first round")
|
||||
return "You can't stand before you see your cards"
|
||||
|
||||
def blackjackPlayerDrawHand(channel,user,bet):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
logThis(user+" is trying to join the game in "+channel)
|
||||
|
||||
if channel in data["blackjack games"]:
|
||||
if user not in data["blackjack games"][channel]["user hands"]:
|
||||
if len(data["blackjack games"][channel]["user hands"]) < 5:
|
||||
if data["blackjack games"][channel]["open for bets"]:
|
||||
if money.checkBalance(user) >= bet:
|
||||
money.addMoney(user,-1 * bet)
|
||||
playerHand = [drawCard(),drawCard()]
|
||||
|
||||
handValue = calcHandValue(playerHand)
|
||||
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if handValue == 21:
|
||||
data["blackjack games"][channel]["user hands"][user] = {"hand":playerHand,"bet":bet,"standing":True,"busted":False,"blackjack":True,"hit":True}
|
||||
else:
|
||||
data["blackjack games"][channel]["user hands"][user] = {"hand":playerHand,"bet":bet,"standing":False,"busted":False,"blackjack":False,"hit":True}
|
||||
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
logThis(user+" entered the game")
|
||||
return user+" entered the game"
|
||||
else:
|
||||
logThis(user+" doesn't have enough GwendoBucks")
|
||||
return "You don't have enough GwendoBucks to place that bet"
|
||||
else:
|
||||
logThis("The table is no longer open for bets")
|
||||
return "The table is no longer open for bets"
|
||||
else:
|
||||
logThis("There are already 5 players in the game.")
|
||||
return "There's already a maximum of players at the table."
|
||||
else:
|
||||
logThis(user+" is already in the game")
|
||||
return "You've already entered this game"
|
||||
else:
|
||||
logThis("There is no game going on in "+channel)
|
||||
return "There is no game going on in this channel"
|
||||
|
||||
def blackjackStart(channel:str):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
logThis("Trying to start a blackjack game in "+channel)
|
||||
|
||||
if channel not in data["blackjack games"]:
|
||||
|
||||
dealerHand = [drawCard(),drawCard()]
|
||||
|
||||
data["blackjack games"][channel] = {"dealer hand": dealerHand,"dealer busted":False,"user hands": {},"open for bets":True,"all standing":False}
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
copyfile("resources/games/blackjackTable.png","resources/games/tables/blackjackTable"+channel+".png")
|
||||
|
||||
return "started"
|
||||
else:
|
||||
logThis("There is already a blackjack game going on in "+channel)
|
||||
return "There's already a blackjack game going on. Try again in a few minutes."
|
||||
|
||||
def blackjackFinish(channel):
|
||||
finalWinnings = "*Final Winnings:*\n"
|
||||
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
dealerValue = calcHandValue(data["blackjack games"][channel]["dealer hand"])
|
||||
reason = ""
|
||||
|
||||
for user in data["blackjack games"][channel]["user hands"]:
|
||||
winnings = -1 * data["blackjack games"][channel]["user hands"][user]["bet"]
|
||||
if data["blackjack games"][channel]["user hands"][user]["blackjack"]:
|
||||
reason = "(blackjack)"
|
||||
winnings += math.floor(2.5 * data["blackjack games"][channel]["user hands"][user]["bet"])
|
||||
else:
|
||||
if data["blackjack games"][channel]["user hands"][user]["busted"] == False:
|
||||
if data["blackjack games"][channel]["dealer busted"]:
|
||||
reason = "(dealer busted)"
|
||||
winnings += 2 * data["blackjack games"][channel]["user hands"][user]["bet"]
|
||||
elif calcHandValue(data["blackjack games"][channel]["user hands"][user]["hand"]) > dealerValue:
|
||||
winnings += 2 * data["blackjack games"][channel]["user hands"][user]["bet"]
|
||||
else:
|
||||
reason = "(busted)"
|
||||
|
||||
if winnings < 0:
|
||||
if winnings == -1:
|
||||
finalWinnings += user+" lost "+str(-1 * winnings)+" GwendoBuck "+reason+"\n"
|
||||
else:
|
||||
finalWinnings += user+" lost "+str(-1 * winnings)+" GwendoBucks "+reason+"\n"
|
||||
else:
|
||||
if winnings == 1:
|
||||
finalWinnings += user+" won "+str(winnings)+" GwendoBuck "+reason+"\n"
|
||||
else:
|
||||
finalWinnings += user+" won "+str(winnings)+" GwendoBucks "+reason+"\n"
|
||||
|
||||
netWinnings = winnings + data["blackjack games"][channel]["user hands"][user]["bet"]
|
||||
|
||||
money.addMoney(user,netWinnings)
|
||||
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
del data["blackjack games"][channel]
|
||||
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
return finalWinnings
|
41
funcs/games/blackjackDraw.py
Normal file
@ -0,0 +1,41 @@
|
||||
import json
|
||||
|
||||
from PIL import Image
|
||||
|
||||
def drawImage(channel):
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if data["blackjack games"][channel]["all standing"] == False:
|
||||
dealerHand = drawHand(data["blackjack games"][channel]["dealer hand"],True)
|
||||
else:
|
||||
dealerHand = drawHand(data["blackjack games"][channel]["dealer hand"],False)
|
||||
|
||||
table = Image.open("resources/games/blackjackTable.png")
|
||||
table.paste(dealerHand,(800,20),dealerHand)
|
||||
|
||||
for x in range(len(data["blackjack games"][channel]["user hands"])):
|
||||
userHand = drawHand(list(data["blackjack games"][channel]["user hands"].values())[x]["hand"],False)
|
||||
table.paste(userHand,(32+(384*x),700),userHand)
|
||||
|
||||
table.save("resources/games/tables/blackjackTable"+channel+".png")
|
||||
|
||||
return
|
||||
|
||||
def drawHand(hand, dealer):
|
||||
length = len(hand)
|
||||
background = Image.new("RGBA", (691+(125*(length-1)),1065),(0,0,0,0))
|
||||
|
||||
if dealer:
|
||||
img = Image.open("resources/games/cards/"+hand[0].upper()+".png")
|
||||
background.paste(img,(0,0),img)
|
||||
img = Image.open("resources/games/cards/red_back.png")
|
||||
background.paste(img,(125,0),img)
|
||||
else:
|
||||
for x in range(length):
|
||||
img = Image.open("resources/games/cards/"+hand[x].upper()+".png")
|
||||
background.paste(img,(x*125,0),img)
|
||||
|
||||
w, h = background.size
|
||||
|
||||
return background.resize((int(w/4),int(h/4)))
|
@ -3,7 +3,9 @@ import json
|
||||
from funcs import logThis
|
||||
|
||||
def checkBalance(user):
|
||||
with open("resources/games.json", "r") as f:
|
||||
user = user.lower()
|
||||
logThis("checking "+user+"'s account balance")
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if user in data["users"]:
|
||||
@ -11,7 +13,9 @@ def checkBalance(user):
|
||||
else: return 0
|
||||
|
||||
def addMoney(user,amount):
|
||||
with open("resources/games.json", "r") as f:
|
||||
user = user.lower()
|
||||
logThis("adding "+str(amount)+" to "+user+"'s account")
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if user in data["users"]:
|
||||
@ -20,11 +24,11 @@ def addMoney(user,amount):
|
||||
else:
|
||||
data["users"][user] = amount
|
||||
|
||||
with open("resources/games.json", "w") as f:
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
def giveMoney(user,targetUser,amount):
|
||||
with open("resources/games.json", "r") as f:
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if user in data["users"]:
|
||||
|
@ -6,8 +6,8 @@ from . import money
|
||||
from funcs import logThis
|
||||
|
||||
def triviaStart(channel : str):
|
||||
with open("resources/games.json", "r") as f:
|
||||
triviaFile = json.load(f)
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
triviaFile = json.load(f)
|
||||
|
||||
logThis("Trying to find a trivia question for "+channel)
|
||||
|
||||
@ -22,7 +22,7 @@ def triviaStart(channel : str):
|
||||
correctAnswer = answers.index(data["results"][0]["correct_answer"]) + 97
|
||||
|
||||
triviaFile["trivia questions"][channel] = {"answer" : str(chr(correctAnswer)),"players" : {}}
|
||||
with open("resources/games.json", "w") as f:
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(triviaFile,f,indent=4)
|
||||
|
||||
replacements = {"'": "\'",
|
||||
@ -45,7 +45,7 @@ def triviaStart(channel : str):
|
||||
return "There's already a trivia question going on. Try again in like, a minute", "", ""
|
||||
|
||||
def triviaOtherThing(user : str, channel : str, command : str):
|
||||
with open("resources/games.json", "r") as f:
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
if command in ["a","b","c","d"]:
|
||||
@ -55,7 +55,7 @@ def triviaOtherThing(user : str, channel : str, command : str):
|
||||
|
||||
data["trivia questions"][channel]["players"][user] = command
|
||||
|
||||
with open("resources/games.json", "w") as f:
|
||||
with open("resources/games/games.json", "w") as f:
|
||||
json.dump(data,f,indent=4)
|
||||
|
||||
return "Locked in "+user+"'s answer"
|
||||
@ -67,7 +67,7 @@ def triviaOtherThing(user : str, channel : str, command : str):
|
||||
return "I didn't quite understand that"
|
||||
|
||||
def triviaCountPoints(channel : str):
|
||||
with open("resources/games.json", "r") as f:
|
||||
with open("resources/games/games.json", "r") as f:
|
||||
data = json.load(f)
|
||||
|
||||
logThis("Counting points for question in "+channel)
|
||||
|
@ -8,6 +8,7 @@ import imdb # Used by movieFunc
|
||||
import time # Used for logging
|
||||
import logging # Used for... you know... logging
|
||||
import wikia # Used by findWikiPage
|
||||
import os
|
||||
|
||||
from .roll import dice
|
||||
|
||||
@ -139,14 +140,26 @@ def makeFiles():
|
||||
|
||||
# Creates games.json if it doesn't exist
|
||||
try:
|
||||
f = open("resources/games.json","r")
|
||||
f = open("resources/games/games.json","r")
|
||||
except:
|
||||
logThis("games.json didn't exist. Making it now.")
|
||||
data = {"trivia questions":{},"users":{}}
|
||||
with open("resources/games.json","w") as f:
|
||||
data = {"trivia questions":{},"blackjack games":{},"users":{}}
|
||||
with open("resources/games/games.json","w") as f:
|
||||
json.dump(data,f,indent = 4)
|
||||
finally:
|
||||
f.close()
|
||||
|
||||
|
||||
# Creates blackjackCards.txt if it doesn't exist
|
||||
try:
|
||||
f = open("resources/games/blackjackCards.txt","r")
|
||||
except:
|
||||
logThis("blackjackCards.txt didn't exist. Making it now.")
|
||||
data = ""
|
||||
with open("resources/games/blackjackCards.txt","w") as f:
|
||||
f.write(data)
|
||||
finally:
|
||||
f.close()
|
||||
|
||||
# Creates destinyPoints.txt if it doesn't exist
|
||||
try:
|
||||
@ -168,4 +181,21 @@ def makeFiles():
|
||||
f.write(token)
|
||||
|
||||
finally:
|
||||
f.close()
|
||||
f.close()
|
||||
|
||||
try:
|
||||
os.makedirs("resources/games/tables")
|
||||
logThis("The tables directory didn't exist")
|
||||
except:
|
||||
logThis("The tables directory existed")
|
||||
|
||||
def replaceMultiple(mainString, toBeReplaces, newString):
|
||||
# Iterate over the strings to be replaced
|
||||
for elem in toBeReplaces :
|
||||
# Check if string is in the main string
|
||||
if elem in mainString :
|
||||
# Replace the string
|
||||
mainString = mainString.replace(elem, newString)
|
||||
|
||||
return mainString
|
||||
|
||||
|
BIN
resources/games/blackjackTable.png
Normal file
After Width: | Height: | Size: 529 KiB |
BIN
resources/games/cards/0C.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
resources/games/cards/0D.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
resources/games/cards/0H.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
resources/games/cards/0S.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
resources/games/cards/2C.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/games/cards/2D.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
resources/games/cards/2H.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
resources/games/cards/2S.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
resources/games/cards/3C.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
resources/games/cards/3D.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
resources/games/cards/3H.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
resources/games/cards/3S.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
resources/games/cards/4C.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
resources/games/cards/4D.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/games/cards/4H.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
resources/games/cards/4S.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/games/cards/5C.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
resources/games/cards/5D.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
resources/games/cards/5H.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
resources/games/cards/5S.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
resources/games/cards/6C.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
resources/games/cards/6D.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
resources/games/cards/6H.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
resources/games/cards/6S.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
resources/games/cards/7C.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
resources/games/cards/7D.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
resources/games/cards/7H.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
resources/games/cards/7S.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
resources/games/cards/8C.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
resources/games/cards/8D.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
resources/games/cards/8H.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
resources/games/cards/8S.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
resources/games/cards/9C.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
resources/games/cards/9D.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
resources/games/cards/9H.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
resources/games/cards/9S.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
resources/games/cards/AC.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
resources/games/cards/AD.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
resources/games/cards/AH.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
resources/games/cards/AS.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
resources/games/cards/JC.png
Normal file
After Width: | Height: | Size: 174 KiB |
BIN
resources/games/cards/JD.png
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
resources/games/cards/JH.png
Normal file
After Width: | Height: | Size: 182 KiB |
BIN
resources/games/cards/JS.png
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
resources/games/cards/KC.png
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
resources/games/cards/KD.png
Normal file
After Width: | Height: | Size: 168 KiB |
BIN
resources/games/cards/KH.png
Normal file
After Width: | Height: | Size: 180 KiB |
BIN
resources/games/cards/KS.png
Normal file
After Width: | Height: | Size: 176 KiB |
BIN
resources/games/cards/QC.png
Normal file
After Width: | Height: | Size: 179 KiB |
BIN
resources/games/cards/QD.png
Normal file
After Width: | Height: | Size: 183 KiB |
BIN
resources/games/cards/QH.png
Normal file
After Width: | Height: | Size: 190 KiB |
BIN
resources/games/cards/QS.png
Normal file
After Width: | Height: | Size: 160 KiB |
BIN
resources/games/cards/blue_back.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
resources/games/cards/gray_back.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
resources/games/cards/green_back.png
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
resources/games/cards/purple_back.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
resources/games/cards/red_back.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
resources/games/cards/yellow_back.png
Normal file
After Width: | Height: | Size: 60 KiB |
52
resources/games/deckofCards.txt
Normal file
@ -0,0 +1,52 @@
|
||||
ad
|
||||
2d
|
||||
3d
|
||||
4d
|
||||
5d
|
||||
6d
|
||||
7d
|
||||
8d
|
||||
9d
|
||||
0d
|
||||
jd
|
||||
qd
|
||||
kd
|
||||
ac
|
||||
2c
|
||||
3c
|
||||
4c
|
||||
5c
|
||||
6c
|
||||
7c
|
||||
8c
|
||||
9c
|
||||
0c
|
||||
jc
|
||||
qc
|
||||
kc
|
||||
ah
|
||||
2h
|
||||
3h
|
||||
4h
|
||||
5h
|
||||
6h
|
||||
7h
|
||||
8h
|
||||
9h
|
||||
0h
|
||||
jh
|
||||
qh
|
||||
kh
|
||||
as
|
||||
2s
|
||||
3s
|
||||
4s
|
||||
5s
|
||||
6s
|
||||
7s
|
||||
8s
|
||||
9s
|
||||
0s
|
||||
js
|
||||
qs
|
||||
ks
|