0% found this document useful (0 votes)
21 views3 pages

Roulette

Uploaded by

mrzerogaming8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views3 pages

Roulette

Uploaded by

mrzerogaming8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

import tkinter as tk

from tkinter import messagebox


import random

class RouletteGame:
def __init__(self, root):
self.root = root
self.root.title("Roulette Game")
self.root.attributes('-fullscreen', True) # Make window full screen
self.root.configure(bg="#006400") # Dark green background color
self.bank = 10000

self.bet_type = tk.StringVar(value="Even")
self.bet_value = tk.StringVar()

self.create_widgets()

def create_widgets(self):
font_settings = ("Arial Black", 20) # Slightly reduced font size

title_label = tk.Label(self.root, text="Roulette Game", font=("Helvetica",


24, "bold"), bg="#006400", fg="#ffffff")
title_label.pack(pady=20)

self.label_bank = tk.Label(self.root, text=f"Bank: ${self.bank}",


font=font_settings, bg="#006400", fg="#ffffff")
self.label_bank.pack(pady=10)

self.label_bet = tk.Label(self.root, text="Place your bet:",


font=font_settings, bg="#006400", fg="#ffffff")
self.label_bet.pack(pady=10)

self.entry_bet = tk.Entry(self.root, font=("Arial Black", 30),


justify='center', bg="#555555", fg="#ffffff", insertbackground="#ffffff")
self.entry_bet.pack(pady=10)

bet_frame = tk.Frame(self.root, bg="#006400")


bet_frame.pack(pady=10)

tk.Radiobutton(bet_frame, text="Even", variable=self.bet_type,


value="Even", font=font_settings, bg="#006400", fg="#ffffff",
selectcolor="#006400").pack(anchor=tk.W, pady=5)
tk.Radiobutton(bet_frame, text="Odd", variable=self.bet_type, value="Odd",
font=font_settings, bg="#006400", fg="#ffffff",
selectcolor="#006400").pack(anchor=tk.W, pady=5)
tk.Radiobutton(bet_frame, text="Low (1-18)", variable=self.bet_type,
value="Low", font=font_settings, bg="#006400", fg="#ffffff",
selectcolor="#006400").pack(anchor=tk.W, pady=5)
tk.Radiobutton(bet_frame, text="High (19-36)", variable=self.bet_type,
value="High", font=font_settings, bg="#006400", fg="#ffffff",
selectcolor="#006400").pack(anchor=tk.W, pady=5)

button_frame = tk.Frame(self.root, bg="#006400")


button_frame.pack(pady=20)

self.button_spin = tk.Button(button_frame, text="Spin",


command=self.open_spin_window, font=("Helvetica", 18), bg="#4CAF50", fg="#fff")
self.button_spin.grid(row=0, column=0, padx=10)
self.button_reset = tk.Button(button_frame, text="Reset",
command=self.reset_game, font=("Helvetica", 18), bg="#FFA500", fg="#fff")
self.button_reset.grid(row=0, column=1, padx=10)

self.exit_button = tk.Button(button_frame, text="Exit",


command=self.exit_game, font=("Helvetica", 18), bg="#f44336", fg="#fff")
self.exit_button.grid(row=0, column=2, padx=10)

self.result_label = tk.Label(self.root, text="", font=font_settings,


bg="#006400", fg="#ffffff")
self.result_label.pack(pady=20)

def open_spin_window(self):
try:
bet = int(self.entry_bet.get())
if bet > self.bank:
messagebox.showwarning("Warning", "You don't have enough money!")
return

self.bank -= bet
self.label_bank.config(text=f"Bank: ${self.bank}")

self.spin_window = tk.Toplevel(self.root)
self.spin_window.title("Spinning Wheel")
self.spin_window.geometry("700x700") # Reduced size of the spin window
self.spin_window.configure(bg="#006400")
self.spin_canvas = tk.Canvas(self.spin_window, width=700, height=700,
bg="#006400", highlightthickness=0)
self.spin_canvas.pack()

self.wheel_colors = ['#FF0000', '#000000'] * 18 + ['#00FF00'] # Red


and Black
self.wheel_numbers = list(range(1, 37)) + [0]

self.angle = 0
self.create_wheel()
self.animate_spin(bet)
except ValueError:
messagebox.showerror("Error", "Please enter a valid bet amount.")

def create_wheel(self):
self.spin_canvas.delete("all")
for i in range(37):
start_angle = self.angle + i * (360 / 37)
end_angle = start_angle + (360 / 37)
color = self.wheel_colors[i % len(self.wheel_colors)]
self.spin_canvas.create_arc(50, 50, 650, 650, start=start_angle,
extent=(360 / 37), fill=color, outline="")

self.spin_canvas.create_oval(325, 325, 375, 375, fill="white") # Center


circle

def animate_spin(self, bet):


self.angle += 10
self.create_wheel()
if self.angle < 360 * 3: # Spin for 3 full rotations
self.spin_canvas.after(50, self.animate_spin, bet)
else:
self.display_result(bet)
def display_result(self, bet):
number = random.randint(0, 36)
winnings = self.calculate_winnings(bet, number)
if winnings:
wm = 'You Win!'
else:
wm = 'You Lose!'
result = f"The ball landed on {number}\n{wm}"
self.result_label.config(text=result)
self.bank += winnings
self.label_bank.config(text=f"Bank: ${self.bank}")
self.spin_window.destroy()

def calculate_winnings(self, bet, number):


bet_type = self.bet_type.get()

winnings = 0
if bet_type == "Even":
if number != 0 and number % 2 == 0:
winnings = bet * 2
elif bet_type == "Odd":
if number % 2 != 0:
winnings = bet * 2
elif bet_type == "Low":
if 1 <= number <= 18:
winnings = bet * 2
elif bet_type == "High":
if 19 <= number <= 36:
winnings = bet * 2

return winnings

def reset_game(self):
self.bank = 10000
self.label_bank.config(text=f"Bank: ${self.bank}")
self.entry_bet.delete(0, tk.END)
self.result_label.config(text="")

def exit_game(self):
self.root.destroy()

if __name__ == "__main__":
root = tk.Tk()
game = RouletteGame(root)
root.mainloop()

You might also like