From daa77b26d6572033c7a4962778a847d2709edcd8 Mon Sep 17 00:00:00 2001 From: phixxy Date: Tue, 17 Mar 2026 14:39:13 -0700 Subject: [PATCH] basic threading implemented --- vpet.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/vpet.py b/vpet.py index 1895bbe..63c9f9e 100644 --- a/vpet.py +++ b/vpet.py @@ -1,5 +1,6 @@ import time import os +import threading import json from pathlib import Path @@ -13,6 +14,8 @@ class Pet: self.hygiene = 100 self.is_alive = True self.birthday = time.time() + self.last_decay = time.time() + self.decay_delay = 10 self.status = "Happy" def rename(self): @@ -30,6 +33,7 @@ class Pet: self.hygiene = min(100, self.hygiene + 13) def decay(self): + self.last_decay = time.time() self.happiness = max(0, self.happiness - 5) self.energy = max(0, self.energy - 3) self.hunger = min(100, self.hunger + 2) @@ -43,7 +47,6 @@ class Pet: print(time.time() - self.birthday) def make_bar(self, percent): - bar = "[" + "X" * (percent//10) + "-" * (10-percent//10) + "]" return bar @@ -66,6 +69,7 @@ class Pet: return line def print_stats(self): + os.system("clear") full_line = "----------------------------" print(full_line) print(f" o)__ Name:" + "{:>10}".format(f"{self.name}")) @@ -83,7 +87,6 @@ class Pet: fp = Path("~/.vpet.sav").expanduser() with open(fp, "w") as f: json.dump(self.__dict__,f) - print("Done") def load(self): print("Loading game...") @@ -95,19 +98,31 @@ class Pet: data = json.load(f) self.__dict__.update(data) return 1 - + +def run(p): + time.sleep(p.decay_delay) + p.running = True + while p.running: + if time.time() - p.last_decay >= p.decay_delay: + p.decay() + p.print_stats() + time.sleep(1) + print("Done") + p = Pet("sally", "frog") if not p.load(): p.rename() -os.system("clear") +p.running = True +run_t = threading.Thread(target=run, args=[p]) +run_t.start() while 1: p.print_stats() x = input() - os.system("clear") if x == 'p': p.play() elif x == 'q': p.save() + p.running = False exit() elif x == 'f': p.feed()