Tamagotchi i Giga Pets były małymi urządzeniami elektronicznymi, które symulowały małego wirtualnego zwierzaka. To zwierzę miało kilka statystyk, takich jak zdrowie, głód itp.
Niedawno napisałem ten przykład:
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
To wirtualne zwierzę bez kości w 467 bajtach! Zastanawiałem się wtedy, jak dobrze potrafią golfiści , więc teraz wyzwanie.
Wyzwanie
Stwórz program, który śledzi 6 statystyk wirtualnego zwierzaka i aktualizuje je wraz z upływem czasu i odpowiedziami użytkowników. Statystyki to: zdrowie i pieniądze (od 100), jedzenie (od 10) oraz głód, sen i mikstury (od 0).
Program powinien zaktualizować wartości w odpowiedzi na następujące zdarzenia:
Chociaż program nie otrzymuje żadnych danych wejściowych, powinien przeprowadzać aktualizacje w regularnych odstępach czasu (odstęp między aktualizacjami nie powinien być krótszy niż pół sekundy ani dłuższy niż jedna sekunda). Każda aktualizacja wykonuje następujące czynności:
- Głód i sen każdego wzrostu o 1.
- Jeśli Głód wynosi 80 lub więcej, Zdrowie spada o 1.
- Jeśli tryb uśpienia wynosi 80 lub więcej, jest resetowany do 0, a głód wzrasta o dodatkowe 9.
- Jeśli Zdrowie wynosi 80 lub więcej, Pieniądze wzrosną o 1.
- Jeśli stan zdrowia wynosi 0, program kończy się.
Program musi również natychmiast reagować na następujące naciśnięcia klawiszy użytkownika (oznacza to, że będziesz musiał użyć funkcji języka lub biblioteki, która może wykryć naciśnięcie klawisza i zareagować na niego natychmiast, a nie tylko czytać ze standardowego wejścia), wykonując następujące działania:
f: Jeśli Głód jest większy niż 8, a Jedzenie jest niezerowe, to Jedzenie zmniejsza się o 1, a Głód zmniejsza się o 9.s: Tryb uśpienia jest resetowany do 0.p: Jeśli Mikstury są większe od zera, Mikstury są zmniejszane o 1, a Zdrowie zwiększa się o 9.b: Jeśli Pieniądze są większe niż 8, to Pieniądze są zmniejszane o 9, a Mikstury zwiększane o 1.t: Jeśli Pieniądze są większe niż 8, to Pieniądze są zmniejszane o 9, a Jedzenie jest zwiększane o 1.
Ilekroć zmieniają się wartości statystyk, muszą być one wyświetlane na ekranie w formularzu . Wszystkie sześć statystyk musi być wyświetlane przy każdej zmianie; a statystyki w obrębie wyświetlacza muszą być oddzielone przecinkami lub znakami nowej linii.Stat: value
To wyzwanie jest normalne golf-golfzasady: wygrywa najkrótszy program zgodny z powyższą specyfikacją. (Pamiętaj, że jak zwykle, jeśli język jest nowszy niż konkurs, zgłoszenie musi być oznaczone jako niekonkurujące).
