import random import sys # Initialize player attributes player = { "name": input("Enter your character's name: "), "health": 100, "food": 100, "x": 5, "y": 5, "day": 1, } # Define game resources resources = { "food": 50, "water": 50, } # Define game constants MAP_WIDTH, MAP_HEIGHT = 20, 10 PLAYER_CHAR = "(o)" ENEMY_CHAR = "(?)" # Game loop while player["health"] > 0: # Create the game map game_map = [[" " for _ in range(MAP_WIDTH)] for _ in range(MAP_HEIGHT)] game_map[player["y"]][player["x"]] = PLAYER_CHAR # Place enemies randomly on the map for _ in range(random.randint(1, 3)): enemy_x = random.randint(0, MAP_WIDTH - 1) enemy_y = random.randint(0, MAP_HEIGHT - 1) game_map[enemy_y][enemy_x] = ENEMY_CHAR # Print the game map for row in game_map: print("".join(row)) print(f"\nDay {player['day']}") print(f"Name: {player['name']}") print(f"Health: {player['health']} HP {'*' * player['health']}") print(f"Food: {player['food']} Hunger {'*' * player['food']}") print(f"Coordinates: ({player['x']}, {player['y']})") # Player input for movement move = input("Move (W/A/S/D): ").upper() # Update player position based on input if move == "W" and player["y"] > 0: player["y"] -= 1 elif move == "S" and player["y"] < MAP_HEIGHT - 1: player["y"] += 1 elif move == "A" and player["x"] > 0: player["x"] -= 1 elif move == "D" and player["x"] < MAP_WIDTH - 1: player["x"] += 1 # Consume resources player["food"] -= random.randint(5, 15) # Check if the player has enough resources if player["food"] < 0: player["food"] = 0 player["health"] -= 10 # Check if the player encounters an enemy if game_map[player["y"]][player["x"]] == ENEMY_CHAR: enemy_damage = random.randint(10, 30) player["health"] -= enemy_damage print(f"You encountered an enemy and took {enemy_damage} damage!") # Rest for the day player["day"] += 1 # Exit the game if health reaches zero if player["health"] <= 0: print("Game Over. You did not survive.") break input("Press Enter to continue to the next day...") sys.exit()