Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 110 additions & 0 deletions coinflip.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
import pygame
import sys
import pygame_gui
import shared
import random
import time

# Initialize Pygame
pygame.init()
screen_width, screen_height = 600, 500
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Team Input and Colour Picker")

clock = pygame.time.Clock()
ui_manager = pygame_gui.UIManager((screen_width, screen_height))

# Colours
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)

# Fonts
try:
font = pygame.font.Font("fonts/PublicSans-Bold.ttf", 24)
except:
font = pygame.font.SysFont("arial", 24)
print("⚠️ Font not found, using system font.")

# Team colours (set elsewhere)
home_team_colour = pygame.Color(0, 0, 0)
away_team_colour = pygame.Color(0, 0, 0)

# Text rendering helper
def draw_text(text, font, colour, surface, x, y):
textobj = font.render(text, True, colour)
textrect = textobj.get_rect()
textrect.topleft = (x, y)
surface.blit(textobj, textrect)

# Basic button class
class Button:
def __init__(self, text, x, y, w, h, colour, action=None):
self.text = text
self.rect = pygame.Rect(x, y, w, h)
self.colour = colour
self.action = action

def draw(self, screen):
pygame.draw.rect(screen, self.colour, self.rect)
draw_text(self.text, font, white, screen, self.rect.x + 10, self.rect.y + 10)

def is_clicked(self, pos):
return self.rect.collidepoint(pos)

def handle_event(self, event):
if event.type == pygame.MOUSEBUTTONDOWN and self.is_clicked(event.pos):
if self.action:
self.action()

# Coin toss logic
def cointossoutcome():
global coinresult
coinresult = random.choice(["Heads", "Tails"])
print(f"Coin Toss Result: {coinresult}")
if coinresult == "Heads":
shared.first_batting_team = shared.home_team
shared.second_batting_team = shared.away_team
draw_text(f"{shared.home_team} won the toss", font, red, screen, 50, 100)
pygame.display.flip()
time.sleep(1)

else:
shared.first_batting_team = shared.away_team
shared.second_batting_team = shared.home_team
draw_text(f"{shared.away_team} won the toss", font, red, screen, 50, 100)
pygame.display.flip()
time.sleep(1)

# Import main to continue (assuming main.py handles the switch)
import main

# Create buttons
heads = Button("Heads", 450, 100, 120, 40, pygame.Color("dodgerblue"), cointossoutcome)
tails = Button("Tails", 450, 200, 120, 40, pygame.Color("orangered"), cointossoutcome)

# Main loop
running = True
while running:
time_delta = clock.tick(60) / 1000.0

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

heads.handle_event(event)
tails.handle_event(event)
ui_manager.process_events(event)

ui_manager.update(time_delta)

screen.fill(black)
draw_text("Away team calls the toss", font, red, screen, 50, 50)
heads.draw(screen)
tails.draw(screen)
ui_manager.draw_ui(screen)

pygame.display.flip()

pygame.quit()
sys.exit()