Untitled
unknown
plain_text
8 months ago
3.5 kB
4
Indexable
import random
import time
# Player class to manage the player's state
class Player:
def __init__(self):
self.health = 100
self.hunger = 50
self.thirst = 50
self.energy = 100
self.food = 0
self.water = 0
def __str__(self):
return (f"Health: {self.health}% | Hunger: {self.hunger}% | "
f"Thirst: {self.thirst}% | Energy: {self.energy}% | "
f"Food: {self.food} | Water: {self.water}")
def is_alive(self):
return self.health > 0 and self.hunger > 0 and self.thirst > 0
def take_damage(self, damage):
self.health -= damage
if self.health < 0:
self.health = 0
def eat(self):
if self.food > 0:
self.hunger = min(self.hunger + 30, 100)
self.food -= 1
print("You eat some food and feel better.")
else:
print("You don't have any food left.")
def drink(self):
if self.water > 0:
self.thirst = min(self.thirst + 30, 100)
self.water -= 1
print("You drink some water and feel refreshed.")
else:
print("You don't have any water left.")
def rest(self):
self.energy = min(self.energy + 30, 100)
self.hunger -= 10
self.thirst -= 10
print("You take a rest and regain some energy.")
def gather_resources(self):
chance = random.randint(1, 10)
if chance > 7:
self.food += 1
print("You find some food.")
elif chance > 4:
self.water += 1
print("You find some water.")
else:
print("You don't find anything.")
def suffer_from_hunger(self):
if self.hunger <= 0:
self.take_damage(10)
print("You feel weak from hunger!")
def suffer_from_thirst(self):
if self.thirst <= 0:
self.take_damage(10)
print("You feel weak from thirst!")
def suffer_from_fatigue(self):
if self.energy <= 0:
self.take_damage(5)
print("You feel weak from exhaustion!")
def game_loop():
player = Player()
print("Welcome to the Survival Game!")
print("Survive by managing hunger, thirst, energy, and health.")
while player.is_alive():
print("\n" + str(player))
print("\nWhat would you like to do?")
print("1. Gather resources")
print("2. Eat food")
print("3. Drink water")
print("4. Rest")
print("5. Do nothing (pass time)")
choice = input("Choose an action: ")
if choice == "1":
player.gather_resources()
elif choice == "2":
player.eat()
elif choice == "3":
player.drink()
elif choice == "4":
player.rest()
elif choice == "5":
print("You decide to rest for a while...")
else:
print("Invalid choice, try again.")
continue
# Simulate time passing and resource consumption
time.sleep(2)
player.hunger -= 5
player.thirst -= 5
player.energy -= 5
# Players suffer from hunger, thirst, and fatigue if not managed
player.suffer_from_hunger()
player.suffer_from_thirst()
player.suffer_from_fatigue()
if not player.is_alive():
print("\nYou have perished. Game over.")
break
if __name__ == "__main__":
game_loop()
Editor is loading...
Leave a Comment