Tamagotchi und Giga Pets waren kleine elektronische Geräte, die ein kleines virtuelles Haustier simulierten. Dieses Haustier hatte mehrere Statistiken, wie Gesundheit, Hunger usw.
Ich habe kürzlich dieses Beispiel geschrieben:
import msvcrt,os,sys;d=m=100;h=s=t=p=0;f=10
while 1:
os.system('cls'if os.name=='nt'else'clear');print("health:",d,"\nhunger:",h,"\nsleep:",s,"\nfood:",f,"\npotions:",p,"\nmoney:",m);t+=1
if msvcrt.kbhit():
k=ord(msvcrt.getch())
if k==102 and h>8 and f:f-=1;h-=9
if k==115:s=0
if k==112 and p:p-=1;d+=9
if k==98 and m>8:m-=9;p+=1
if k==116 and m>8:m-=9;f+=1
if t>99:
t=0;h+=1;s+=1
if s>80:s=0;h+=9
if h>80:d-=1
if d<1:sys.exit(0)
if d>79:m+=1
Dies ist ein virtuelles Haustier mit nackten Knochen in 467 Bytes! Ich habe mich dann gefragt, wie gut die Code-Golf-Profis das machen können, also jetzt die Herausforderung.
Die Herausforderung
Erstellen Sie ein Programm, das 6 Statistiken eines virtuellen Haustieres verfolgt und diese im Laufe der Zeit und als Reaktion auf Benutzereingaben aktualisiert. Die Statistiken sind: Gesundheit und Geld (ab 100), Essen (ab 10) und Hunger, Schlaf und Tränke (ab 0).
Das Programm sollte die Werte als Reaktion auf die folgenden Ereignisse aktualisieren:
Während das Programm keine Eingabe empfängt, sollte es in regelmäßigen Abständen Aktualisierungen durchführen (das Intervall zwischen den Aktualisierungen sollte nicht kürzer als eine halbe Sekunde und nicht länger als eine Sekunde sein). Jedes Update führt Folgendes aus:
- Hunger und Schlaf erhöhen sich jeweils um 1.
- Wenn der Hunger 80 oder mehr beträgt, verringert sich die Gesundheit um 1.
- Wenn der Schlaf 80 oder höher ist, wird er auf 0 zurückgesetzt und der Hunger um weitere 9 erhöht.
- Wenn die Gesundheit 80 oder höher ist, erhöht sich das Geld um 1.
- Wenn Health 0 ist, wird das Programm beendet.
Das Programm muss auch sofort auf die folgenden Tastendrücke des Benutzers reagieren (dies bedeutet, dass Sie eine Sprachfunktion oder -bibliothek verwenden müssen, die eine gedrückte Taste erkennen und sofort darauf reagieren kann, anstatt nur von der Standardeingabe zu lesen) die folgenden Aktionen:
f: Wenn der Hunger größer als 8 ist und das Essen ungleich Null ist, wird das Essen um 1 und der Hunger um 9 verringert.s: Der Schlaf wird auf 0 zurückgesetzt.p: Wenn Tränke größer als Null sind, werden Tränke um 1 verringert und die Gesundheit um 9 erhöht.b: Wenn das Geld größer als 8 ist, wird das Geld um 9 verringert und die Tränke um 1 erhöht.t: Wenn das Geld größer als 8 ist, wird das Geld um 9 verringert und das Essen um 1 erhöht.
Wenn sich die Werte der Statistiken ändern, müssen sie im Formular auf dem Bildschirm angezeigt werden Stat: value . Alle sechs Statistiken müssen angezeigt werden, wenn sich eine von ihnen ändert. und die Statistiken innerhalb einer Anzeige müssen entweder durch Kommas oder durch Zeilenumbrüche getrennt werden.
Diese Herausforderung folgt den normalen Code-Golf- Regeln: Das kürzeste Programm, das der obigen Spezifikation entspricht, gewinnt. (Beachten Sie, dass wie üblich, wenn die Sprache neuer als der Wettbewerb ist, die Einreichung als nicht konkurrierend markiert werden muss.)
