import pygame import pygame_menu from pygame_menu import themes from time import sleep import random pygame.init() surface = pygame.display.set_mode((600, 400)) # Function to set the difficulty based on the player's choice def set_difficulty(value, difficulty): global max_number if difficulty == 1: # Hard max_number = 50 elif difficulty == 2: # Easy max_number = 10 print(f"Difficulty set to {value}. Maximum number: {max_number}") # Function to start the game (Guess the Number) def start_the_game(): print("Starting the game...") # Random number generation based on difficulty target_number = random.randint(1, max_number) attempts = 0 guessed = False # Game loop while not guessed: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() surface.fill((255, 255, 255)) # Clear screen # Display instructions and remaining attempts font = pygame.font.Font(None, 36) instructions = font.render(f"Guess a number between 1 and {max_number}", True, (0, 0, 0)) surface.blit(instructions, (100, 100)) # Listen for key press (single digit entry) pressed_keys = pygame.key.get_pressed() for i in range(10): if pressed_keys[pygame.K_0 + i]: guessed_number = i break else: guessed_number = None # Display guessed number if any if guessed_number is not None: attempts += 1 if guessed_number == target_number: guessed = True result = font.render(f"Congratulations! You guessed the number in {attempts} attempts!", True, (0, 255, 0)) else: result = font.render(f"Wrong guess! Try again.", True, (255, 0, 0)) surface.blit(result, (100, 200)) pygame.display.update() # Refresh the screen sleep(0.2) # Slight delay to make input feel more natural # Function to open level selection menu def level_menu(): mainmenu._open(level) # Initialize main menu mainmenu = pygame_menu.Menu('Welcome', 600, 400, theme=themes.THEME_SOLARIZED) mainmenu.add.text_input('Name: ', default='username', maxchar=20) mainmenu.add.button('Play', start_the_game) mainmenu.add.button('Levels', level_menu) mainmenu.add.button('Quit', pygame_menu.events.EXIT) # Level selection menu level = pygame_menu.Menu('Select a Difficulty', 600, 400, theme=themes.THEME_BLUE) level.add.selector('Difficulty:', [('Hard', 1), ('Easy', 2)], onchange=set_difficulty) # Start the main menu loop mainmenu.mainloop(surface)