Tamagotchi та Giga Pets були маленькими електронними пристроями, що імітували маленького віртуального вихованця. У цього домашнього улюбленця було кілька статистичних даних, таких як здоров'я, голод тощо.
Я нещодавно писав цей приклад:
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
Це віртуальний вихованець з голими кістками в 467 байт! Потім я поцікавився, наскільки добре можна зробити кодові профі для гольфу , тож тепер, завдання.
Змагання
Створіть програму, яка відстежує 6 статистичних даних віртуального улюбленця та оновлює їх у часі та у відповідь на введення користувача. Статистика є: здоров'я та гроші (починаючи з 100), їжа (починаючи з 10), голод, сон і зілля (починаючи з 0).
Програма повинна оновити значення у відповідь на наступні події:
Поки програма не отримує жодного вводу, вона повинна виконувати оновлення через регулярні інтервали (інтервал між оновленнями не повинен бути коротшим за півсекунди і не довше однієї секунди). Кожне оновлення виконує такі дії:
- Голод і сон кожен збільшуються на 1.
- Якщо голод становить 80 і вище, здоров'я знижується на 1.
- Якщо сон становить 80 або вище, він скидається на 0, а голод збільшується на додаткові 9.
- Якщо здоров'я становить 80 і більше, гроші збільшуються на 1.
- Якщо значення Health 0, програма завершується.
Програма також повинна негайно реагувати на наступні натискання клавіш користувачем (це означає, що вам потрібно буде використовувати мовну функцію або бібліотеку, яка може виявити натискання клавіші і негайно відповісти на неї, а не просто читати зі стандартного введення), виконуючи наступні дії:
f: Якщо голод перевищує 8, а їжа - ненульова, то їжа знижується на 1, а голод - на 9.s: Сон скидається до 0.p: Якщо зілля більше нуля, зілля зменшується на 1, а здоров'я - на 9.b: Якщо грошей більше 8, то гроші зменшуються на 9, а зілля збільшується на 1.t: Якщо грошей більше 8, то гроші зменшуються на 9, а їжа збільшується на 1.
Щоразу, коли значення статистики змінюються, вони повинні відображатися на екрані у формі . Усі шість статистичних даних повинні бути відображені, коли будь-яка з них змінюється; а статистика в межах відображення повинна бути розділена або комами, або новими рядками.Stat: value
Цей виклик відповідає нормальному код-гольфправила: виграє найкоротша програма, що відповідає вищевказаній специфікації. (Зауважте, що як правило, якщо мова є більш новою, ніж конкуренція, подання має бути позначене як неконкурентне.)
