FEAT: Main game loop finished with a few things to modify

This commit is contained in:
2026-09-04 10:29:25 -04:00
parent 7edf93b707
commit bd2d9ec309
2 changed files with 129 additions and 16 deletions
+125 -16
View File
@@ -6,6 +6,7 @@ class Player:
self.fish = 0 self.fish = 0
self.wood = 0 self.wood = 0
self.hours = 16 self.hours = 16
self.obtained_boat = 0 # when they got boat
self.fish_per_hour = fish_per_hour self.fish_per_hour = fish_per_hour
self.wood_per_hour = wood_per_hour self.wood_per_hour = wood_per_hour
@@ -14,10 +15,20 @@ class Player:
self.fish_preserver = False self.fish_preserver = False
self.boat = False self.boat = False
def strip_hours(self, hours):
self.hours -= hours
class Game: class Game:
def __init__(self): def __init__(self):
self.players_found = 0 self.players_found = 0
self.days = 0
def fishing(self, player: Player, hours):
player.fish += player.fish_per_hour * hours
def collect_wood(self, player: Player, hours):
player.wood += player.wood_per_hour * hours
def improve_fishing(self, player: Player): def improve_fishing(self, player: Player):
player.fish_per_hour += 1 player.fish_per_hour += 1
@@ -26,16 +37,12 @@ class Game:
player.wood_per_hour += 1 player.wood_per_hour += 1
def create_fish_preserver(self, player: Player): def create_fish_preserver(self, player: Player):
if (player.hours >= 8 and player.fish >= 25): player.wood -= 25
player.hours -= 8 player.fish_preserver = True
player.fish -= 25
player.fish_preserver = True
def create_boat(self, player: Player): def create_boat(self, player: Player):
if (player.hours == 16 and player.wood >= 100): player.wood -= 100
player.hours -= 16 player.boat = True
player.wood -= 100
player.boat = True
def create_player_values(self, player: Player): def create_player_values(self, player: Player):
fish = random.randint(1, 2) fish = random.randint(1, 2)
@@ -45,17 +52,119 @@ class Game:
if (fish == 2): if (fish == 2):
wood = 1 wood = 1
player.fish = fish player.fish_per_hour = fish
player.wood = wood player.wood_per_hour = wood
def state(self, player: Player):
running = True
invalid = False
while (running):
if (player.boat and player.obtained_boat < self.days and player.fish >= 24):
print("Good fucking job lad. You win!")
break
if (player.hours <= 0):
if (player.fish >= 8 and player.wood >= 4):
self.days += 1
player.hours += 16
player.wood -= 4
if (not player.fish_preserver):
player.fish = 0
else:
player.fish -= 8
else:
print("You fucking died!")
break
print("\033[H\033[J", end="")
if (invalid):
print("LAST RESPONSE WAS INVALID!\n")
invalid = False
print(f"Game Days: {self.days}\n")
print(f"Player Production: {player.hours} hours left")
print("╭───────────────┬───────────────╮\n"
"│ Fish Per Hour │ Wood Per Hour │\n"
f"│ {player.fish_per_hour} │ {player.wood_per_hour} │\n"
"╰───────────────┴───────────────╯")
print("╭────────────────┬─────────────────╮\n"
"│ Owns Preserver │ Owns Boat │\n"
f"│ {player.fish_preserver} │ {player.boat} │\n"
"╰────────────────┴─────────────────╯")
print("╭─────────────┬─────────────╮\n"
"│ Stored Fish │ Stored Wood │\n"
f"│ {player.fish} │ {player.wood} │\n"
"╰─────────────┴─────────────╯")
print("What do you want to spend your hours on?\n1. Fishing.\n2. Foraging.\n3. Improve Fishing.\n4. Improve Foraging.\n5. Build a preserver.\n6. Build a boat.\nQ to quit")
user_input = input()
if (user_input == "q"):
print("Leaving self. Does not save. Tough shit.")
break
elif (user_input == "1"):
print("How many hours do you want to fish?")
user_input = input()
if (player.hours >= int(user_input)):
self.fishing(player, int(user_input))
player.strip_hours(int(user_input))
else:
print(
f"You dont have the hours to do that much work. Hours left: {int(user_input)}")
elif (user_input == "2"):
print("How many hours do you want to forage?")
user_input = input()
if (player.hours >= int(user_input)):
self.collect_wood(player, int(user_input))
player.strip_hours(int(user_input))
else:
print(
f"You dont have the hours to do that much work. Hours left: {player.hours}")
elif (user_input == "3"):
print("Do you want to improve your fishing efficiency?")
user_input = input()
if (user_input == "Y" and player.hours >= 8):
self.improve_fishing(player)
player.strip_hours(8)
else:
print(
f"You dont have the hours to do that much work. Hours left: {player.hours}")
elif (user_input == "4"):
print("Do you want to improve your foraging efficiency?")
user_input = input()
if (user_input == "Y" and player.hours >= 8):
self.improve_foraging(player)
player.strip_hours(8)
else:
print(
f"You dont have the hours to do that much work. Hours left: {player.hours}")
elif (user_input == "5"):
print("Do you want to build a fish preserver?")
user_input = input()
if (user_input == "Y" and player.hours >= 8 and player.wood >= 25):
self.create_fish_preserver(player)
player.strip_hours(8)
else:
print(
f"You dont have the hours to do that much work. Hours left: {player.hours}")
elif (user_input == "6"):
print("Do you want to build a boat?")
user_input = input()
if (user_input == "Y" and player.hours >= 16 and player.wood >= 100):
self.create_boat(player)
player.strip_hours(16)
player.obtained_boat = self.days
else:
print(
f"You dont have the hours to do that much work. Hours left: {player.hours}")
else:
invalid = True
def main(): def main():
running = True game = Game()
while (running): player = Player(0, 0)
print("What do you want to spend your hours on?\n1. Fishing.\n2. Foraging.\n3. Improve Fishing.\n4. Improve Foraging.\n5. Build a preserver.\n6. Build a boat") game.create_player_values(player)
user_input = input() game.state(player)
if (user_input == "1") print("1. How did scarcity come into play durig this simulation?\n")
print(type(user_input)) print("2. How did you determine if and under what terms to trade?\n")
print("3. How did your starting production levels determine your success in the game?\n")
if __name__ == "__main__": if __name__ == "__main__":
+4
View File
@@ -0,0 +1,4 @@
[tool.autopep8]
max-line-length = 120
ignore = "E501,W6"
aggressive = 2