Тамагочи и Гига Питомцы были маленькими электронными устройствами, которые имитировали маленького виртуального питомца. У этого питомца было несколько характеристик, таких как здоровье, голод и т. Д.
Я недавно написал этот пример:
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.
- Если Sleep равен 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
Этот вызов следует нормально Код-гольфправила: выигрывает самая короткая программа, соответствующая приведенной выше спецификации. (Обратите внимание, что, как обычно, если язык новее, чем у конкурса, заявка должна быть помечена как не конкурирующая.)
