Tamagotchi y Giga Pets eran pequeños dispositivos electrónicos que simulaban una pequeña mascota virtual. Esta mascota tenía varias estadísticas, como salud, hambre, etc.
Recientemente escribí este ejemplo:
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
¡Esta es una mascota virtual básica en 467 bytes! Entonces me pregunté qué tan bien podrían hacer los profesionales de golf de código , así que ahora, el desafío.
El reto
Cree un programa que rastree 6 estadísticas de una mascota virtual y las actualice con el tiempo y en respuesta a las aportaciones del usuario. Las estadísticas son: salud y dinero (a partir de 100), comida (a partir de 10) y hambre, sueño y pociones (a partir de 0).
El programa debe actualizar los valores en respuesta a los siguientes eventos:
Mientras el programa no recibe ninguna entrada, debe realizar actualizaciones a intervalos regulares (el intervalo entre actualizaciones no debe ser más corto que medio segundo ni más largo que un segundo). Cada actualización hace lo siguiente:
- El hambre y el sueño aumentan en 1.
- Si el hambre es 80 o superior, la salud disminuye en 1.
- Si Sleep es 80 o superior, se restablece a 0, y Hunger aumenta en 9 adicionales.
- Si la salud es 80 o superior, el dinero aumenta en 1.
- Si la salud es 0, el programa se cierra.
El programa también debe responder inmediatamente al presionar las siguientes teclas por el usuario (esto significa que necesitará usar una función o biblioteca de idioma que pueda detectar una tecla presionada y responder de inmediato, en lugar de solo leer desde la entrada estándar), realizando las siguientes acciones:
f: Si el hambre es mayor que 8 y la comida no es cero, la comida disminuye en 1 y el hambre disminuye en 9.s: El sueño se restablece a 0.p: Si Pociones es mayor que cero, las Pociones disminuyen en 1 y la Salud aumenta en 9.b: Si el dinero es mayor que 8, entonces el dinero se reduce en 9 y las pociones se incrementan en 1.t: Si el dinero es mayor que 8, entonces el dinero se reduce en 9 y los alimentos aumentan en 1.
Siempre que los valores de las estadísticas cambien, deben mostrarse en la pantalla en el formulario . Las seis estadísticas deben mostrarse cada vez que alguna de ellas cambie; y las estadísticas dentro de una pantalla deben estar separadas por comas o por nuevas líneas.Stat: value
Este desafío sigue las reglas normales de código de golf : gana el programa más corto que cumpla con la especificación anterior. (Tenga en cuenta que, como de costumbre, si el idioma es más nuevo que la competencia, la presentación debe estar marcada como no competitiva).
