84 lines
2.2 KiB
Python
84 lines
2.2 KiB
Python
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()
|