Tamagotchi dan Giga Pets adalah perangkat elektronik kecil yang disimulasikan sebagai hewan peliharaan virtual kecil. Hewan peliharaan ini memiliki beberapa statistik, seperti kesehatan, kelaparan, dll.
Saya baru-baru ini menulis contoh ini:
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
Ini adalah hewan peliharaan virtual tanpa tulang dalam 467 byte! Saya kemudian bertanya-tanya seberapa bagus pro golf code bisa melakukannya, jadi sekarang, tantangannya.
Tantangan
Buat program yang melacak 6 statistik hewan peliharaan virtual, dan perbarui dari waktu ke waktu dan sebagai respons terhadap input pengguna. Statistiknya adalah: kesehatan dan uang (mulai dari 100), makanan (mulai dari 10), dan kelaparan, tidur, dan ramuan (mulai dari 0).
Program harus memperbarui nilai sebagai respons terhadap peristiwa berikut:
Ketika program tidak menerima input, program harus melakukan pembaruan secara berkala (interval antara pembaruan tidak boleh lebih pendek dari setengah detik atau lebih lama dari satu detik). Setiap pembaruan melakukan hal berikut:
- Lapar dan Tidur masing-masing bertambah 1.
- Jika Kelaparan 80 atau lebih, Kesehatan berkurang 1.
- Jika Sleep adalah 80 atau lebih, itu diatur ulang ke 0, dan Hunger bertambah dengan tambahan 9.
- Jika Kesehatan 80 atau lebih, Uang bertambah 1.
- Jika Health adalah 0, program keluar.
Program juga harus segera merespons penekanan tombol berikut oleh pengguna (ini berarti Anda harus menggunakan fitur bahasa atau pustaka yang dapat mendeteksi kunci yang ditekan dan meresponsnya segera, daripada hanya membaca dari input standar), melakukan tindakan berikut:
f: Jika Kelaparan lebih besar dari 8 dan Makanan bukan nol, maka Makanan berkurang 1 dan Kelaparan menurun 9.s: Tidur diatur ulang ke 0.p: Jika Ramuan lebih besar dari nol, Ramuan berkurang 1 dan Kesehatan meningkat 9.b: Jika Uang lebih besar dari 8, maka Uang berkurang 9 dan Ramuan bertambah 1.t: Jika Uang lebih besar dari 8, maka Uang berkurang 9, dan Makanan meningkat sebesar 1.
Setiap kali nilai statistik berubah, mereka harus ditampilkan di layar dalam formulir . Keenam statistik harus ditampilkan setiap kali ada perubahan; dan statistik dalam tampilan harus dipisahkan dengan koma atau baris baru.Stat: value
Tantangan ini mengikuti aturan kode-golf normal : program terpendek yang memenuhi spesifikasi menang di atas. (Perhatikan bahwa seperti biasa, jika bahasa lebih baru daripada kompetisi, pengajuan harus ditandai sebagai tidak bersaing.)
