Tamagotchi ve Giga Pets, küçük bir sanal evcil hayvan simüle eden küçük elektronik cihazlardır. Bu evcil hayvanın sağlık, açlık gibi çeşitli istatistikleri vardı.
Son zamanlarda bu örneği yazdım:
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
Bu 467 baytta çıplak kemikli bir sanal evcil hayvan! Sonra golf profesyonellerinin ne kadar iyi yapabileceğini merak ettim , bu yüzden şimdi meydan okuma.
Meydan okuma
Sanal bir evcil hayvanın 6 istatistikini izleyen ve zaman içinde ve kullanıcı girdisine yanıt olarak bunları güncelleyen bir program yapın. İstatistikler: sağlık ve para (100'den başlayan), yiyecek (10'dan başlayan) ve açlık, uyku ve iksirler (0'dan başlayan).
Program aşağıdaki olaylara yanıt olarak değerleri güncellemelidir:
Program girdi almıyorken, düzenli aralıklarla güncelleme yapmalıdır (güncellemeler arasındaki aralık yarım saniyeden kısa veya bir saniyeden uzun olmamalıdır). Her güncelleme aşağıdakileri yapar:
- Açlık ve Uyku her biri 1 oranında artar.
- Açlık 80 veya üstü ise Sağlık 1 azalır.
- Uyku 80 veya üzeriyse, 0'a sıfırlanır ve Açlık ek 9 artar.
- Sağlık 80 veya üstü ise Para 1 artar.
- Sağlık 0 ise, programdan çıkılır.
Program ayrıca kullanıcı tarafından aşağıdaki tuşlara basıldığında hemen yanıt vermelidir (bu, yalnızca standart girdiden okumak yerine, basılan bir anahtarı algılayıp hemen yanıt verebilecek bir dil özelliği veya kitaplığı kullanmanız gerektiği anlamına gelir) aşağıdaki eylemler:
f: Açlık 8'den büyükse ve Gıda sıfır değilse, Gıda 1 azalır ve Açlık 9 azaltılır.s: Uyku 0'a sıfırlanır.p: İksirler sıfırdan büyükse İksirler 1 azaltılır ve Sağlık 9 arttırılır.b: Para 8'den büyükse, Para 9 azalır ve İksirler 1 arttırılır.t: Para 8'den büyükse, Para 9 azalır ve Yemek 1 arttırılır.
İstatistiklerin değerleri her değiştiğinde, formda ekranda görüntülenmeleri gerekir . Bunlardan herhangi biri değiştiğinde, altı istatistik de görüntülenmelidir; ve bir ekrandaki istatistikler virgülle veya satırsonu ile ayrılmalıdır.Stat: value
Bu zorluk normalden sonra geliyor kod golfkurallar: yukarıdaki spesifikasyona uyan en kısa program kazanır. (Her zamanki gibi, dil rekabetten daha yeniyse, başvurunun rakipsiz olarak işaretlenmesi gerektiğini unutmayın.)
