import pygame import random import time # Initialize pygame pygame.init() # Constants WIDTH, HEIGHT = 1600, 1200 WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) FONT = pygame.font.Font(None, 36) # Load and Scale Gun Sprite gun_player = pygame.image.load("gun.webp") gun_player = pygame.transform.scale(gun_player, (150, 150)) gun_computer = pygame.transform.rotate(gun_player, 180) # Load Additional Sprites download_sprite = pygame.image.load("download.png") download_sprite = pygame.transform.scale(download_sprite, (150, 150)) evil_sprite = pygame.image.load("evil.png") evil_sprite = pygame.transform.scale(evil_sprite, (150, 150)) # Load Sounds click_sound = pygame.mixer.Sound("click.mp3") boom_sound = pygame.mixer.Sound("boom.mp3") # Game Variables def initialize_chamber(): global chamber, current_chamber, total_chambers total_chambers = random.randint(3, 9) # Random chamber size between 3 and 6 chamber = [0] * (total_chambers - 1) + [1] # One bullet, rest empty random.shuffle(chamber) current_chamber = 0 initialize_chamber() player_turn = True # True = Player, False = Computer winner = None # Pygame Setup screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Russian Roulette") clock = pygame.time.Clock() # Button button_rect = pygame.Rect(700, 1000, 200, 50) def draw_text(text, x, y, color=WHITE): text_surface = FONT.render(text, True, color) screen.blit(text_surface, (x, y)) def pull_trigger(): global current_chamber, winner, player_turn if chamber[current_chamber] == 1: boom_sound.play() winner = "Evil Man Wins!" if player_turn else "Player Wins!" else: click_sound.play() current_chamber += 1 player_turn = not player_turn # Switch turns def reset_game(): global player_turn, winner initialize_chamber() player_turn = True winner = None running = True while running: screen.fill(BLACK) draw_text("Rocket Roulette", 700, 100, RED) draw_text(f"Chambers: {total_chambers}", 50, 80, WHITE) if winner: draw_text(winner, 750, 400, GREEN) draw_text("Press R to Restart", 730, 450, WHITE) else: draw_text("Player Turn" if player_turn else "Computer Turn", 740, 400, WHITE) pygame.draw.rect(screen, GREEN, button_rect) draw_text("Pull Trigger", 750, 1015, BLACK) # Draw gun sprite gun_image = gun_player if player_turn else gun_computer screen.blit(gun_image, (725, 600)) # Draw additional sprites screen.blit(download_sprite, (100, 500)) # Left side screen.blit(evil_sprite, (1350, 500)) # Right side pygame.display.flip() if not winner and not player_turn: time.sleep(1) pull_trigger() for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN and event.key == pygame.K_r: reset_game() elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: if button_rect.collidepoint(event.pos) and player_turn and not winner: pull_trigger() clock.tick(30) pygame.quit()