Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import os
- import time
- from tkinter import *
- from tkinter import messagebox
- """
- 1/14/2015 - Chris Nelson of CnelsonCreations
- Wheel of Fortune, Version 0.1 Pre-Beta
- """
- class Player:
- def __init__(self, name):
- self.name = name
- self.player_bank = 500000000
- self.player_wins = 0
- self.player_losses = 0
- self.player_total_guesses = 0
- self.player_record_file = ("{}Records.txt".format(name))
- self.comp_names = ["Chris", "Brianna", "Cooper", "Winston", "James", "Nicole",
- "Kevin", "Eric", "Sarah"]
- self.comp_difficulty = random.randint(1, 3)
- self.comp1 = random.choice(self.comp_names)
- self.comp2 = random.choice(self.comp_names)
- self.comp1_bank = 0
- self.comp2_bank = 0
- if os.path.isfile(self.player_record_file):
- pass
- else:
- with open(self.player_record_file, "w") as file:
- self.write_bank = ("{}\n".format(self.player_bank))
- self.write_wins = ("{}\n".format(self.player_wins))
- self.write_losses = ("{}\n".format(self.player_losses))
- self.write_guesses = ("{}".format(self.player_total_guesses))
- file.write(self.write_bank)
- file.write(self.write_wins)
- file.write(self.write_losses)
- file.write(self.write_guesses)
- self.GetRecords()
- def GetRecords(self):
- with open(self.player_record_file, "r") as file:
- self.player_record_bank = file.readline()
- self.player_record_wins = file.readline()
- self.player_record_losses = file.readline()
- self.player_record_guesses = file.readline()
- self.player_record_bank = int(self.player_record_bank)
- self.player_record_wins = int(self.player_record_wins)
- self.player_record_losses = int(self.player_record_losses)
- self.player_record_guesses = int(self.player_record_guesses)
- def AppendRecords(self):
- self.player_append_bank = self.player_record_bank + self.player_bank
- self.player_append_wins = self.player_record_wins + self.player_wins
- self.player_append_losses = self.player_record_losses + self.player_losses
- self.player_append_guesses = self.player_record_guesses + self.player_total_guesses
- with open(self.player_record_file, "w") as file:
- write_new_bank = ("{}\n".format(self.player_append_bank))
- write_new_wins = ("{}\n".format(self.player_append_wins))
- write_new_losses = ("{}\n".format(self.player_append_losses))
- write_new_guesses = ("{}".format(self.player_append_guesses))
- file.write(write_new_bank)
- file.write(write_new_wins)
- file.write(write_new_losses)
- file.write(write_new_guesses)
- def ResetRecords(self):
- self.player_reset_bank = 0
- self.player_reset_wins = 0
- self.player_reset_losses = 0
- self.player_reset_guesses = 0
- with open(self.player_record_file, "w") as file:
- reset_bank = ("{}\n".format(self.player_reset_bank))
- reset_wins = ("{}\n".format(self.player_reset_wins))
- reset_losses = ("{}\n".format(self.player_reset_losses))
- reset_guesses = ("{}\n".format(self.player_reset_guesses))
- file.write(reset_bank)
- file.write(reset_wins)
- file.write(reset_losses)
- file.write(reset_guesses)
- class Game:
- def __init__(self):
- """Set the list of letters that can be used."""
- self.letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
- "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
- "u", "v", "w", "x", "y", "z"]
- """Rare Letters that shouldn't be used by AI players, depending on difficulty"""
- self.rare_letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i",
- "k", "l", "m", "n", "o", "p", "r", "s", "t",
- "u", "v", "w"]
- """prize values"""
- self.prizelist = [0, 1, 2, 3, 4, 5, 6, 50, 75, 100, 150, 200,
- 225, 250, 275, 300, 325, 350, 375, 400, 450,
- 500, 550, 600, 650, 700, 750, 800, 825, 850,
- 875, 900, 925, 975, 1000, 1200, 1250, 1300,
- 1400, 1600, 2000, 4500, 5000]
- """The phrases to use for the game."""
- self.phrases_other = ["home free", "head over heels", "hello world", "public place",
- "human calculator", "work schedule", "fast cars", "surf is up",
- "python programming", "the new year", "just wing it", "good to go",
- "coin counting", "best friends", "wedding photos", "wedding venue",
- "phone system", "computer", "website", "android operating system",
- "the carriage house", "taking back sunday", "hole in one", "golfer",
- "tiger woods", "water bottle", "cell phone", "home phone", "postcard",
- "golf clubs", "laptop", "new jersey", "new york", "california", "sunny"]
- self.phrase_things = ["three iron", "iphone", "laptop", "tesla model s", "phone charger", "xbox one",
- "chocolate", "packing peanuts", "cinder block", "model car", "sketch pad",
- "street lights", "greeting card", "washing machine", "cell phone", "tissue box",
- "playing cards", "sticky notes", "video games", "credit cards", "boom box", "glow stick",
- "air freshener", "rubber duck", "candy wrapper", "mouse pad", "hair brush", "ice cube tray",
- "key chain", "sun glasses", "nail clippers", "paint brush", "picture frame", "television",
- "checkbook", "thermometer", "newspaper", "headphones", "toothpaste", "fake flowers",
- "soy sauce packet", "cookie jar", "tire swing", "scotch tape", "stop sign", "soda can"]
- self.phrases_places = ["new jersey", "new york", "california", "downtown", "the statue of liberty",
- "augusta national golf club", "cedar creek golf course", "atlantic city",
- "the carriage house", "gulf coast", "gold coast", "mexico", "caribbean",
- "caymen islands", "venezuela", "alaska", "downtown la", "texas", "canada",
- "disney world", "disney land", ]
- self.phrases_people = ["tiger woods", "christopher nelson", "brianna habe", "marilyn monroe", "bill gates",
- "charles darwin", "paul mccartney", "thomas edison", "rosa parks", "walt disney",
- "richard branson", "ernest hemingway", "john lennon", "michael jordon", "michael jackson",
- "steve jobs", "roger federer", "david beckham", "usain bolt", "anne frank", "lance armstrong",
- "sergey brin", "al gore", "george bush", "brad pitt", "taylor swift", "justin bieber",
- "katy perry", "harry potter", "jimmy carter", "elon musk", "warren buffet", "rory mcilroy"]
- self.phrase_list = [self.phrases_other, self.phrase_things, self.phrases_places, self.phrases_people]
- self.phrases = random.choice(self.phrase_list)
- """Get a winning phrase."""
- self.current_phrase = random.choice(self.phrases)
- """Set some default values"""
- self.correct_count = 0
- self.win = False
- self.HideWinner()
- def GetCat(self):
- if self.phrases == self.phrases_other:
- self.cat = "Other"
- elif self.phrases == self.phrase_things:
- self.cat = "Things"
- elif self.phrases == self.phrases_places:
- self.cat = "Places"
- else:
- self.cat = "People"
- return self.cat
- def HideWinner(self):
- print(self.current_phrase) #For debugging only
- self.current_prize = random.choice(self.prizelist)
- self.correct_word = list("-" * len(self.current_phrase))
- self.hide_phrase = []
- """
- Replace on letters, not spaces!
- """
- for self.char in self.current_phrase:
- if self.char == " ":
- self.hide_phrase += " "
- else:
- self.hide_phrase += "_"
- for self.char in self.hide_phrase:
- self.hidden = " ".join(self.hide_phrase)
- print(self.hidden)
- def GetPrize(self):
- """Get the prize, and determine if we got unlucky
- Did we go bankrupt or lose a turn?"""
- self.current_prize = random.choice(self.prizelist)
- if self.current_prize in (0, 1, 2):
- self.turn = False
- self.bankrupt = True
- elif self.current_prize in (3, 4, 5):
- self.turn = False
- self.bankrupt = False
- elif self.current_prize == 6:
- self.current_prize = 10000
- self.turn = True
- self.bankrupt = False
- else:
- self.bankrupt = False
- self.turn = True
- return self.turn, self.bankrupt, self.current_prize
- def SetBonusLetters(self):
- self.guess = "r"
- self.guess1 = "s"
- self.guess2 = "t"
- self.guess3 = "l"
- self.guess4 = "e"
- def BonusRound(self, player):
- for i in range(len(self.current_phrase)):
- if self.guess == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess
- player.player_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- for i in range(len(self.current_phrase)):
- if self.guess1 == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess1
- player.player_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- for i in range(len(self.current_phrase)):
- if self.guess2 == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess2
- player.player_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- for i in range(len(self.current_phrase)):
- if self.guess3 == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess3
- player.player_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- for i in range(len(self.current_phrase)):
- if self.guess4 == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess4
- player.player_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- print(self.hidden)
- def GameLogic(self, player):
- self.turn = True
- if self.guess == self.current_phrase:
- self.win = True
- self.turn = False
- elif self.guess in self.current_phrase:
- self.letters.remove(self.guess)
- if self.guess not in self.rare_letters:
- pass
- else:
- self.rare_letters.remove(self.guess)
- for i in range(len(self.current_phrase)):
- if self.guess == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess
- player.player_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- self.correct_count += 1
- else:
- self.turn = False
- self.letters.remove(self.guess)
- if self.guess not in self.rare_letters:
- pass
- else:
- self.rare_letters.remove(self.guess)
- return self.turn, self.win
- def AIone(self, computer):
- self.win = False
- self.guess = random.choice(self.rare_letters)
- self.AIdif = len(self.current_phrase)
- self.winning = self.correct_count / self.AIdif * 100
- if self.winning >= 70.00:
- self.guess = self.current_phrase
- else:
- pass
- print(self.guess)
- if self.guess == self.current_phrase:
- self.win = True
- self.ai_correct = True
- elif self.guess in self.current_phrase:
- self.letters.remove(self.guess)
- self.rare_letters.remove(self.guess)
- self.ai_correct = True
- for i in range(len(self.current_phrase)):
- if self.guess == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess
- computer.comp1_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- self.correct_count += 1
- else:
- self.turn = False
- self.ai_correct = False
- self.letters.remove(self.guess)
- self.rare_letters.remove(self.guess)
- return self.turn, self.ai_correct, self.win
- def AItwo(self, computer):
- self.win = False
- self.guess = random.choice(self.rare_letters)
- self.AIdif = len(self.current_phrase)
- self.winning = self.correct_count / self.AIdif * 100
- if self.winning >= 90.00:
- self.guess = self.current_phrase
- else:
- pass
- print(self.guess)
- if self.guess == self.current_phrase:
- self.win = True
- self.ai_correct = True
- elif self.guess in self.current_phrase:
- self.letters.remove(self.guess)
- self.rare_letters.remove(self.guess)
- self.ai_correct = True
- for i in range(len(self.current_phrase)):
- if self.guess == self.current_phrase[i]:
- self.hide_phrase[i] = self.guess
- computer.comp2_bank += self.current_prize
- self.hidden = " ".join(self.hide_phrase)
- self.correct_count += 1
- else:
- self.turn = False
- self.ai_correct = False
- self.letters.remove(self.guess)
- self.rare_letters.remove(self.guess)
- return self.turn, self.ai_correct, self.win
- def UserBankrupt(self, player):
- player.player_bank -= player.player_bank
- def Comp1Bankrupt(self, computer):
- computer.comp1_bank -= computer.comp1_bank
- def Comp2Bankrupt(self, computer):
- computer.comp2_bank -= computer.comp2_bank
- class GUI:
- def __init__(self):
- self.root = Tk()
- self.w, self.h = self.root.winfo_screenwidth(), self.root.winfo_screenheight()
- self.root.geometry("{}x{}".format(self.w, self.h))
- self.root.title("Wheel of Chance!")
- self.topmenu = Menu(self.root)
- self.root.config(menu=self.topmenu)
- self.topmenu.add_command(label="New Game", state="disabled", command=lambda: self.NewGame())
- self.topmenu.add_command(label="Records", state="disabled", command=lambda: self.DisplayRecord())
- self.topmenu.add_command(label="Reset Records", state="disabled", command=lambda: self.ResetRecord())
- self.topmenu.add_command(label="Quit", command=lambda: self.Quit())
- self.new_game = Button(self.root, text="Start New Game!", font="bold", state="disabled", command=lambda: self.NewGame())
- self.quit_game = Button(self.root, text="Save and Quit!", font="bold", state="disabled", command=lambda: self.Quit())
- self.new_player = Entry(self.root)
- self.info = Label(self.root, text="What is your name: ", font="bold")
- self.submit = Button(self.root, text="Continue!", font="bold", command=lambda: self.GetPlayer())
- self.directions = Button(self.root, text="Learn to Play!", font="bold", command=lambda: self.Directions())
- self.info.grid(row=1, column=1, padx=5, pady=5)
- self.new_player.grid(row=1, column=2, padx=5, pady=5)
- self.submit.grid(row=1, column=3, padx=5, pady=5)
- self.new_game.grid(row=2, column=1, padx=5, pady=5)
- self.quit_game.grid(row=2, column=2, padx=5, pady=5)
- self.directions.grid(row=2, column=3, padx=5, pady=5)
- self.root.mainloop()
- def Directions(self):
- directions = messagebox.showinfo("Learn to Play!", "This game is very simple. It is much like\n"
- "Wheel of Fortune. There are 4 catogories\n"
- "'People', 'Places', 'Things', and 'Other'.\n"
- "Your will play against two computer players.\n"
- "You will spin the wheel for a prize, and guess a letter.\n"
- "You also have the option to solve the puzzle anytime during\n"
- "your turn. If during any game session you reach $15,000 dollars\n"
- "and win the current puzzle, you will be invite to play the bonus\n"
- "round! You can only solve the puzzle on your turn. The computer\n"
- "will also guess letters and solve the puzzle if possible!\n"
- "Best of luck!")
- def DisplayRecord(self):
- self.user.GetRecords()
- self.recordspopup = Toplevel()
- self.recordspopup.focus_set()
- self.recordspopup.geometry("350x200")
- self.displayrecords = Text(self.recordspopup)
- self.displayrecords.insert(1.0, "{} Here are your liftime records!\n"
- "Total Money in the bank: ${}\n"
- "Total wins: {}\n"
- "Total losses: {}\n"
- "Lifetime guesses: {}".format(self.user.name, self.user.player_record_bank,
- self.user.player_record_wins,
- self.user.player_record_losses,
- self.user.player_record_guesses), END)
- self.displayrecords.pack()
- def ResetRecord(self):
- self.confirmreset = messagebox.askyesno("Confirm?",
- "This will reset all your lifetime records for player {}!\n"
- "This action is not reversible!\n"
- "Do you still wish to reset records?".format(self.user.name))
- if self.confirmreset is True:
- self.user.ResetRecords()
- self.truereset = messagebox.showinfo("Records Reset!", "Your records have been reset!")
- else:
- self.truereset = messagebox.showinfo("Reset Cancelled", "The reset has been cancelled!")
- def GetPlayer(self):
- self.temp = self.new_player.get()
- self.user = Player(self.temp)
- self.new_player.destroy()
- self.submit.destroy()
- self.info.destroy()
- self.topmenu.entryconfig("New Game", state="normal")
- self.topmenu.entryconfig("Records", state="normal")
- self.topmenu.entryconfig("Reset Records", state="normal")
- self.new_game.config(state="normal")
- self.quit_game.config(state="normal")
- self.info = Label(self.root, font="bold", text="{} best of luck!".format(self.user.name))
- self.info.grid(row=1, column=1)
- self.root.update()
- def NewGame(self):
- self.game = Game()
- self.root.destroy()
- self.GameScreen()
- def GameScreen(self):
- self.screen = Tk()
- self.screen.title("Good Luck!")
- self.screen.geometry("{}x{}".format(self.w, self.h))
- self.font = ("Verdana", 40, "bold")
- self.game.GetCat()
- self.cat_label = Label(self.screen, text=self.game.cat)
- self.cat_label.config(font=self.font)
- self.word = Label(self.screen, text=self.game.hidden)
- self.word.config(font=self.font)
- self.cat_label.pack(padx=5, pady=5)
- self.word.pack(padx=5, pady=5)
- self.wheel = Button(self.screen, text="Spin the wheel!", font="bold", command=lambda: self.GetPrize())
- self.solve = Button(self.screen, text="Solve!", command=lambda: self.Solve(), font="bold")
- self.solve.pack(padx=5, pady=5)
- self.wheel.pack(padx=5, pady=5)
- self.bank1 = Label(self.screen, font="bold", text="{} You have ${}.00!".format(self.user.name, self.user.player_bank))
- self.bank2 = Label(self.screen, font="bold", text="{} has ${}.00!".format(self.user.comp1, self.user.comp1_bank))
- self.bank3 = Label(self.screen, font="bold", text="{} has ${}.00!".format(self.user.comp2, self.user.comp2_bank))
- self.bank1.pack(padx=5, pady=5)
- self.bank2.pack(padx=5, pady=5)
- self.bank3.pack(padx=5, pady=5)
- self.screen.mainloop()
- def GetPrize(self):
- self.game.GetPrize()
- self.wheel.config(state="disabled")
- self.solve = Button(self.screen, text="Solve!", command=lambda: self.Solve(), font="bold", padx=5, pady=5)
- if self.game.current_prize in (0, 1, 2):
- self.prize_info = Label(self.screen, text="Bankrupt and Lose a Turn!")
- self.prize_info.config(font=self.font)
- self.game.UserBankrupt(self.user)
- elif self.game.current_prize in (3, 4, 5):
- self.prize_info = Label(self.screen, text="Lose a turn!")
- self.prize_info.config(font=self.font)
- else:
- self.prize_info = Label(self.screen, text="${}.00".format(self.game.current_prize))
- self.prize_info.config(font=self.font)
- self.prize_info.pack()
- if self.game.turn is True:
- self.guess_button = Button(self.screen, text="Make a Guess!", font="bold", command=lambda: self.MakeGuess())
- else:
- self.guess_button = Button(self.screen, text="Sorry!\n"
- "Next Player!", font="bold", command=lambda: self.SkipGuess())
- self.guess_button.pack()
- self.screen.update_idletasks()
- def SkipGuess(self):
- self.screen.destroy()
- self.AIOneTurn()
- def Solve(self):
- self.solve.config(state="disabled")
- self.guess_window = Tk()
- self.guess_window.geometry("700x200")
- self.guess_window.title("Solve the puzzle!")
- self.info_guess = Label(self.guess_window, text="Solve the puzzle:")
- self.solve_guess = Entry(self.guess_window)
- self.user_submit = Button(self.guess_window, text="Guess!", command=lambda: self.PassSolve())
- self.info_guess.pack(padx=5, pady=5)
- self.solve_guess.pack(padx=5, pady=5)
- self.user_submit.pack(padx=5, pady=5)
- def PassSolve(self):
- self.user.player_total_guesses += 1
- self.game.guess = self.solve_guess.get().lower()
- if self.game.guess == self.game.current_phrase:
- self.game.GameLogic(self.user)
- if self.game.win is True:
- self.Winner1()
- else:
- incorrect = messagebox.showinfo("Incorrect!", "Sorry, that is not right! On to the next player.")
- self.screen.destroy()
- self.guess_window.destroy()
- self.AIOneTurn()
- def MakeGuess(self):
- self.user.player_total_guesses += 1
- self.guess_button.config(state="disabled")
- self.guess_window = Tk()
- self.guess_window.geometry("700x200")
- self.guess_window.title("Make a Guess!")
- self.font_letters = ("Verdana", 10, "bold")
- self.avil_letter = Label(self.guess_window, text="Letters Available:\n"
- "{}".format(self.game.letters))
- self.avil_letter.config(font=self.font_letters)
- self.info_guess = Label(self.guess_window, text="Type a letter to make a guess:")
- self.user_guess = Entry(self.guess_window)
- self.user_submit = Button(self.guess_window, text="Guess!", command=lambda: self.PassUserGuess())
- self.rando_submit = Button(self.guess_window, text="Random Letter", command=lambda: self.RandoLetter())
- self.rando_submit.pack(padx=5, pady=5)
- self.info_guess.pack(padx=5, pady=5)
- self.user_guess.pack(padx=5, pady=5)
- self.user_submit.pack(padx=5, pady=5)
- self.avil_letter.pack(padx=5, pady=5)
- def RandoLetter(self):
- self.rando = random.choice(self.game.letters)
- self.user_guess.delete(0, END)
- self.user_guess.insert(0, self.rando)
- def PassUserGuess(self):
- self.user.player_total_guesses += 1
- self.game.guess = self.user_guess.get()
- self.game.guess.lower()
- if self.game.guess not in self.game.letters:
- pop = messagebox.showinfo("Uh oh!", "Sorry that letter has already\n"
- "been guessed! Lets try not to break\n"
- "the program please!")
- self.guess_window.focus_force()
- else:
- self.game.GameLogic(self.user)
- if self.game.win is True:
- self.Winner1()
- while self.game.turn is True:
- self.message = messagebox.showinfo("Correct!", "Nice job! You gussed correctly.\n"
- "Click 'Ok' for next spin!")
- self.screen.destroy()
- self.guess_window.destroy()
- self.GameScreen()
- if self.game.turn is False and self.game.win is False:
- self.AI = messagebox.showinfo("Incorrect!", "Sorry, that letter is not correct.\n"
- " It is now the computers turn!")
- self.screen.destroy()
- self.guess_window.destroy()
- if self.game.win is False:
- self.AIOneTurn()
- def AIOneTurn(self):
- self.ai_window = Tk()
- self.ai_window.geometry("{}x{}".format(self.w, self.h))
- self.ai_window.title("{}'s Turn!".format(self.user.comp1))
- self.cat_label1 = Label(self.ai_window, text=self.game.cat)
- self.cat_label1.config(font=self.font)
- self.word1 = Label(self.ai_window, text=self.game.hidden)
- self.word1.config(font=self.font)
- self.cat_label1.pack()
- self.word1.pack()
- self.ai_bank1 = Label(self.ai_window, font="bold", text="{} You have ${}.00!".format(self.user.name, self.user.player_bank))
- self.ai_bank2 = Label(self.ai_window, font="bold", text="{} has ${}.00!".format(self.user.comp1, self.user.comp1_bank))
- self.ai_bank3 = Label(self.ai_window, font="bold", text="{} has ${}.00!".format(self.user.comp2, self.user.comp2_bank))
- self.ai_bank1.pack(padx=5, pady=5)
- self.ai_bank2.pack(padx=5, pady=5)
- self.ai_bank3.pack(padx=5, pady=5)
- spinning = messagebox.showinfo("Wheel Spinning....", "{} has spun the wheel...\n"
- "\n"
- "\n"
- "Click to continue!".format(self.user.comp1))
- self.game.GetPrize()
- if self.game.current_prize in (0, 1, 2):
- skip = True
- self.ai_prize = messagebox.showinfo("Prize!", "{} went Bankrupt and Lost this turn!".format(self.user.comp1))
- self.game.Comp1Bankrupt(self.user)
- elif self.game.current_prize in (3, 4, 5):
- skip = True
- self.ai_prize = messagebox.showinfo("Prize!", "{} lost this turn!".format(self.user.comp1))
- """Add code to skip turn"""
- else:
- skip = False
- self.ai_prize = messagebox.showinfo("Prize!", "The current spin for {} landed on ${}.00!".format(self.user.comp1, self.game.current_prize))
- self.game.AIone(self.user)
- if self.game.win is True:
- skip = True
- self.ai_guess = messagebox.showinfo("{} Guess!".format(self.user.comp1), "{} solved the puzzle with, '{}'!".format(self.user.comp1, self.game.guess))
- self.Winner2()
- if skip is False:
- if self.game.ai_correct is True:
- self.ai_guess = messagebox.showinfo("{} Guess!".format(self.user.comp1), "{} correctly guessed '{}'!".format(self.user.comp1, self.game.guess))
- if self.game.ai_correct is False:
- self.ai_guess = messagebox.showinfo("{} Guess!".format(self.user.comp1), "{} guessed '{}' incorrectly!".format(self.user.comp1, self.game.guess))
- while self.game.turn is True:
- self.ai_window.destroy()
- self.AIOneTurn()
- if self.game.win is False:
- self.ai_window.destroy()
- self.AITwoTurn()
- def AITwoTurn(self):
- self.ai_window1 = Tk()
- self.ai_window1.geometry("{}x{}".format(self.w, self.h))
- self.ai_window1.title("{}'s Turn!".format(self.user.comp2))
- self.cat_label2 = Label(self.ai_window1, text=self.game.cat)
- self.cat_label2.config(font=self.font)
- self.word2 = Label(self.ai_window1, text=self.game.hidden)
- self.word2.config(font=self.font)
- self.cat_label2.pack()
- self.word2.pack()
- self.ai2_bank1 = Label(self.ai_window1, font="bold", text="{} You have ${}.00!".format(self.user.name, self.user.player_bank))
- self.ai2_bank2 = Label(self.ai_window1, font="bold", text="{} has ${}.00!".format(self.user.comp1, self.user.comp1_bank))
- self.ai2_bank3 = Label(self.ai_window1, font="bold", text="{} has ${}.00!".format(self.user.comp2, self.user.comp2_bank))
- self.ai2_bank1.pack(padx=5, pady=5)
- self.ai2_bank2.pack(padx=5, pady=5)
- self.ai2_bank3.pack(padx=5, pady=5)
- spinning = messagebox.showinfo("Wheel Spinning....", "{} has spun the wheel...\n"
- "\n"
- "\n"
- "Click to continue!".format(self.user.comp2))
- self.game.GetPrize()
- if self.game.current_prize in (0, 1, 2):
- skip = True
- self.ai_prize = messagebox.showinfo("Prize!", "{} went Bankrupt and Lost this turn!".format(self.user.comp2))
- self.game.Comp2Bankrupt(self.user)
- elif self.game.current_prize in (3, 4, 5):
- skip = True
- self.ai_prize = messagebox.showinfo("Prize!", "{} lost this turn!".format(self.user.comp2))
- """Add code to skip turn"""
- else:
- skip = False
- self.ai_prize = messagebox.showinfo("Prize!", "The current spin for {} landed on ${}.00!".format(self.user.comp2, self.game.current_prize))
- self.game.AItwo(self.user)
- if self.game.win is True:
- skip = True
- self.ai_guess = messagebox.showinfo("{} Guess!".format(self.user.comp2), "{} solved the puzzle with, '{}'!".format(self.user.comp2, self.game.guess))
- self.Winner3()
- if skip is False:
- if self.game.ai_correct is True:
- self.ai_guess = messagebox.showinfo("{} Guess!".format(self.user.comp2), "{} correctly guessed '{}'!".format(self.user.comp2, self.game.guess))
- if self.game.ai_correct is False:
- self.ai_guess = messagebox.showinfo("{} Guess!".format(self.user.comp2), "{} guessed '{}' incorrectly!".format(self.user.comp2, self.game.guess))
- while self.game.turn is True:
- self.ai_window1.destroy()
- self.AITwoTurn()
- if self.game.win is False:
- self.ai_window1.destroy()
- self.GameScreen()
- def Quit(self):
- self.user.AppendRecords()
- goodbye = messagebox.showinfo("Good Bye!", "Hope you had fun!")
- raise SystemExit
- def PlayAgain1(self):
- self.user.AppendRecords()
- self.game = Game()
- self.winner1.destroy()
- self.GameScreen()
- def PlayAgain2(self):
- self.user.AppendRecords()
- self.game = Game()
- self.winner2.destroy()
- self.GameScreen()
- def PlayAgain3(self):
- self.user.AppendRecords()
- self.game = Game()
- self.winner3.destroy()
- self.GameScreen()
- def PlayBonus(self):
- self.bonus = Game()
- self.bonus.SetBonusLetters()
- self.bonus.BonusRound(self.user)
- self.BonusGameScreen()
- def Winner1(self):
- self.screen.destroy()
- self.guess_window.destroy()
- self.user.player_wins += 1
- if self.user.player_bank >= 15000:
- self.winner1 = Tk()
- self.winner1.geometry("{}x{}".format(self.w, self.h))
- self.winner1.title("Congratulations {}!".format(self.user.name))
- winner1 = Label(self.winner1, text="Great job on solving the puzzle!", font="bold")
- winner2 = Label(self.winner1, text="Your total winnings: ${}.00!".format(self.user.player_bank), font="bold")
- winner3 = Label(self.winner1, text="You qualified for the bonus round!".format(self.user.player_bank), font="bold")
- self.bonus_round = Button(self.winner1, text="Play Bonus Round!", font="bold", command=lambda: self.PlayBonus())
- self.play_agin = Button(self.winner1, text="Play Again!", font="bold", command=lambda: self.PlayAgain1())
- self.quit = Button(self.winner1, text="No Thanks!", font="bold", command=lambda: self.Quit())
- winner3.pack()
- winner1.pack()
- winner2.pack()
- self.bonus_round.pack(padx=5, pady=5)
- self.play_agin.pack(padx=5, pady=5)
- self.quit.pack(padx=5, pady=5)
- self.word = Label(self.winner1, text=self.game.current_phrase)
- self.word.config(font=self.font)
- self.word.pack()
- else:
- self.winner1 = Tk()
- self.winner1.geometry("{}x{}".format(self.w, self.h))
- self.winner1.title("Congratulations {}!".format(self.user.name))
- winner1 = Label(self.winner1, text="Great job on solving the puzzle!", font="bold")
- winner2 = Label(self.winner1, text="Your total winnings: ${}.00!".format(self.user.player_bank), font="bold")
- self.play_agin = Button(self.winner1, text="Play Again!", font="bold", command=lambda: self.PlayAgain1())
- self.quit = Button(self.winner1, text="No Thanks!", font="bold", command=lambda: self.Quit())
- winner1.pack()
- winner2.pack()
- self.play_agin.pack(padx=5, pady=5)
- self.quit.pack(padx=5, pady=5)
- self.word = Label(self.winner1, text=self.game.current_phrase)
- self.word.config(font=self.font)
- self.word.pack()
- def Winner2(self):
- self.ai_window.destroy()
- self.user.player_losses += 1
- self.winner2 = Tk()
- self.winner2.geometry("{}x{}".format(self.w, self.h))
- self.winner2.title("Congratulations {}!".format(self.user.comp1))
- self.winner2_info = Label(self.winner2, text="{} maybe you will win next time!".format(self.user.name), font="bold")
- self.winner3_info = Label(self.winner2, text="Hope you had fun!", font="bold")
- self.play_agin = Button(self.winner2, text="Play Again!", font="bold", command=lambda: self.PlayAgain2())
- self.quit = Button(self.winner2, text="No Thanks!", font="bold", command=lambda: self.Quit())
- self.winner2_info.pack()
- self.winner3_info.pack()
- self.play_agin.pack(padx=5, pady=5)
- self.quit.pack(padx=5, pady=5)
- self.word = Label(self.winner2, text=self.game.current_phrase)
- self.word.config(font=self.font)
- self.word.pack()
- def Winner3(self):
- self.ai_window1.destroy()
- self.user.player_losses += 1
- self.winner3 = Tk()
- self.winner3.geometry("{}x{}".format(self.w, self.h))
- self.winner3.title("Congratulations {}!".format(self.user.comp2))
- self.winner4_info = Label(self.winner3, text="{} maybe you will win next time!".format(self.user.name), font="bold")
- self.winner5_info = Label(self.winner3, text="Hope you had fun!", font="bold")
- self.play_agin = Button(self.winner3, text="Play Again!", font="bold", command=lambda: self.PlayAgain3())
- self.quit = Button(self.winner3, text="No Thanks!", font="bold", command=lambda: self.Quit())
- self.winner4_info.pack()
- self.winner5_info.pack()
- self.play_agin.pack(padx=5, pady=5)
- self.quit.pack(padx=5, pady=5)
- self.word = Label(self.winner3, text=self.game.current_phrase)
- self.word.config(font=self.font)
- self.word.pack()
- def BonusGameScreen(self):
- self.winner1.destroy()
- self.screen = Tk()
- self.screen.title("Good Luck!")
- self.screen.geometry("{}x{}".format(self.w, self.h))
- self.font = ("Verdana", 40, "bold")
- self.bonus.GetCat()
- self.cat_label = Label(self.screen, text=self.bonus.cat)
- self.cat_label.config(font=self.font)
- self.word = Label(self.screen, text=self.bonus.hidden)
- self.word.config(font=self.font)
- self.cat_label.pack(padx=5, pady=5)
- self.word.pack(padx=5, pady=5)
- self.solve = Button(self.screen, text="Solve!", command=lambda: self.Solve(), font="bold")
- self.solve.pack(padx=5, pady=5)
- self.given_letters = Label(self.screen, text="Letters Given: 'R', 'S', 'T', 'L', 'E'.", font="bold")
- self.given_letters.pack()
- self.user_guess_bonus = Entry(self.screen)
- self.user_guess_bonus1 = Entry(self.screen)
- self.user_guess_bonus2 = Entry(self.screen)
- self.user_guess_bonus3 = Entry(self.screen)
- self.user_guess_bonus4 = Entry(self.screen)
- self.submit = Button(self.screen, text="Submit Guesses!", font="bold", command=lambda: self.PassBonus())
- self.bank1 = Label(self.screen, font="bold", text="{} You have ${}.00!".format(self.user.name, self.user.player_bank))
- self.user_guess_bonus.pack()
- self.user_guess_bonus1.pack()
- self.user_guess_bonus2.pack()
- self.user_guess_bonus3.pack()
- self.user_guess_bonus4.pack()
- self.bank1.pack(padx=5, pady=5)
- self.submit.pack()
- self.screen.mainloop()
- def PassBonus(self):
- self.bonus.guess = self.user_guess_bonus.get()
- self.bonus.guess1 = self.user_guess_bonus1.get()
- self.bonus.guess2 = self.user_guess_bonus2.get()
- self.bonus.guess3 = self.user_guess_bonus3.get()
- self.bonus.guess4 = self.user_guess_bonus4.get()
- self.submit.config(state="disabled")
- self.bonus.BonusRound(self.user)
- self.word.destroy()
- self.cat_label.destroy()
- self.submit.destroy()
- self.bank1.destroy()
- self.solve.destroy()
- self.user_guess_bonus.destroy()
- self.user_guess_bonus1.destroy()
- self.user_guess_bonus2.destroy()
- self.user_guess_bonus3.destroy()
- self.user_guess_bonus4.destroy()
- self.word = Label(self.screen, text=self.bonus.hidden)
- self.cat_label = Label(self.screen, text=self.bonus.cat)
- self.bank1 = Label(self.screen, font="bold", text="{} You have ${}.00!".format(self.user.name, self.user.player_bank))
- self.solve = Button(self.screen, text="Solve!", command=lambda: self.BonusSolveGuess(), font="bold")
- self.word.config(font=self.font)
- self.cat_label.config(font=self.font)
- self.cat_label.pack()
- self.word.pack()
- self.time = 90
- self.timerlabel = Label(self.screen, text=self.time, font="bold")
- self.timefont = ("Verdana", 25, "bold")
- self.timerlabel.config(font=self.timefont)
- self.timerlabel.pack()
- self.solve.pack()
- self.bank1.pack()
- self.BonusTimer()
- self.screen.update_idletasks()
- def BonusTimer(self):
- self.time -= 1
- if self.time == 0:
- self.BonusLoser()
- elif self.time <= 15 and self.time > 0:
- self.bonustimer = Toplevel(self.screen)
- self.bonustimer.withdraw()
- self.timerlabel.destroy()
- self.timerlabel = Label(self.screen, text=self.time, font="bold", fg="red")
- self.timefont = ("Verdana", 25, "bold")
- self.timerlabel.config(font=self.timefont)
- self.timerlabel.pack()
- self.bonustimer.after(1000, self.BonusTimer)
- else:
- self.bonustimer = Toplevel(self.screen)
- self.bonustimer.withdraw()
- self.timerlabel.destroy()
- self.timerlabel = Label(self.screen, text=self.time, font="bold")
- self.timefont = ("Verdana", 25, "bold")
- self.timerlabel.config(font=self.timefont)
- self.timerlabel.pack()
- self.bonustimer.after(1000, self.BonusTimer)
- def BonusSolveGuess(self):
- self.screen1 = Tk()
- self.screen1.title("Good Luck!")
- self.screen1.geometry("700x200")
- self.font = ("Verdana", 40, "bold")
- self.solvelabel = Label(self.screen1, text="Solve the puzzle!", font="bold")
- self.solve = Button(self.screen1, text="Solve!", command=lambda: self.BonusSolve(), font="bold")
- self.solvelabel.pack(padx=5, pady=5)
- self.user_guess_bonus_1 = Entry(self.screen1)
- self.user_guess_bonus_1.pack(padx=5, pady=5)
- self.solve.pack(padx=5, pady=5)
- def BonusSolve(self):
- user_bonus = self.user_guess_bonus_1.get()
- if user_bonus.lower() == self.bonus.current_phrase:
- winner = messagebox.showinfo("Congradulations!", "Nice Job! You won the bonus round!")
- self.bonustimer.destroy()
- self.screen1.destroy()
- self.screen.destroy()
- self.BonusWinner()
- else:
- loser = messagebox.showinfo("Incorrect!", "Click ok to continue guessing!")
- self.screen1.destroy()
- def BonusWinner(self):
- self.user.player_wins += 1
- self.user.AppendRecords()
- self.winner1 = Tk()
- self.winner1.geometry("{}x{}".format(self.w, self.h))
- self.winner1.title("Congratulations {}!".format(self.user.name))
- winner1 = Label(self.winner1, text="Great job on solving the puzzle!", font="bold")
- winner2 = Label(self.winner1, text="Your total winnings: ${}.00!".format(self.user.player_bank), font="bold")
- self.play_agin = Button(self.winner1, text="Play Again!", font="bold", command=lambda: self.PlayAgain1())
- self.quit = Button(self.winner1, text="No Thanks!", font="bold", command=lambda: self.Quit())
- winner1.pack()
- winner2.pack()
- self.play_agin.pack(padx=5, pady=5)
- self.quit.pack(padx=5, pady=5)
- self.word = Label(self.winner1, text=self.bonus.current_phrase)
- self.word.config(font=self.font)
- self.word.pack()
- self.user.player_bank -= self.user.player_bank
- def BonusLoser(self):
- self.screen1.destroy()
- self.winner1 = Tk()
- self.winner1.geometry("{}x{}".format(self.w, self.h))
- self.winner1.title("{} you lost!".format(self.user.name))
- winner1 = Label(self.winner1, text="Maybe you will get it next time!", font="bold")
- winner2 = Label(self.winner1, text="Your total winnings: ${}.00!".format(self.user.player_bank), font="bold")
- self.play_agin = Button(self.winner1, text="Play Again!", font="bold", command=lambda: self.PlayAgain1())
- self.quit = Button(self.winner1, text="No Thanks!", font="bold", command=lambda: self.Quit())
- winner1.pack()
- winner2.pack()
- self.play_agin.pack(padx=5, pady=5)
- self.quit.pack(padx=5, pady=5)
- self.word = Label(self.winner1, text=self.bonus.current_phrase)
- self.word.config(font=self.font)
- self.word.pack()
- start = GUI()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement