Tamagotchi et Giga Pets étaient de petits appareils électroniques qui simulaient un petit animal virtuel. Cet animal avait plusieurs statistiques, comme la santé, la faim, etc.
J'ai récemment écrit cet exemple:
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
Ceci est un animal de compagnie virtuel à nu en 467 octets! Je me suis ensuite demandé dans quelle mesure les pros du golf pouvaient faire du code , alors maintenant, le défi.
Le défi
Créez un programme qui suit 6 statistiques d'un animal virtuel et les met à jour au fil du temps et en réponse à l'entrée de l'utilisateur. Les statistiques sont les suivantes: santé et argent (à partir de 100), nourriture (à partir de 10) et faim, sommeil et potions (à partir de 0).
Le programme doit mettre à jour les valeurs en réponse aux événements suivants:
Pendant que le programme ne reçoit aucune entrée, il doit effectuer des mises à jour à intervalles réguliers (l'intervalle entre les mises à jour ne doit pas être inférieur à une demi-seconde ni supérieur à une seconde). Chaque mise à jour effectue les opérations suivantes:
- La faim et le sommeil augmentent chacun de 1.
- Si la faim est de 80 ou plus, la santé diminue de 1.
- Si le sommeil est de 80 ou plus, il est réinitialisé à 0 et la faim augmente de 9 supplémentaires.
- Si la santé est de 80 ou plus, l'argent augmente de 1.
- Si Health est 0, le programme se ferme.
Le programme doit également répondre immédiatement aux pressions de touches suivantes de l'utilisateur (cela signifie que vous devrez utiliser une fonction de langue ou une bibliothèque qui peut détecter une touche enfoncée et y répondre immédiatement, plutôt que de simplement lire à partir d'une entrée standard), les actions suivantes:
f: Si la faim est supérieure à 8 et que la nourriture n'est pas nulle, la nourriture est diminuée de 1 et la faim est diminuée de 9.s: Le sommeil est réinitialisé à 0.p: Si Potions est supérieur à zéro, Potions est diminué de 1 et Santé est augmentée de 9.b: Si l'argent est supérieur à 8, l'argent est diminué de 9 et les potions sont augmentées de 1.t: Si l'argent est supérieur à 8, l'argent est diminué de 9 et la nourriture est augmentée de 1.
Chaque fois que les valeurs des statistiques changent, elles doivent être affichées à l'écran dans le formulaire . Les six statistiques doivent être affichées chaque fois que l'une d'entre elles change; et les statistiques dans un affichage doivent être séparées soit par des virgules soit par des sauts de ligne.Stat: value
Ce défi suit les règles normales du code-golf : le programme le plus court conforme aux spécifications ci-dessus l'emporte. (Notez que, comme d'habitude, si la langue est plus récente que la compétition, la soumission doit être marquée comme non concurrente.)
