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
- ถ้า Hunger 80 หรือสูงกว่าสุขภาพจะลดลง 1
- หาก Sleep เป็น 80 หรือสูงกว่าจะถูกรีเซ็ตเป็น 0 และ Hunger จะเพิ่มขึ้นอีก 9
- ถ้า Health 80 หรือสูงกว่าเงินจะเพิ่มขึ้น 1
- ถ้า Health เป็น 0 โปรแกรมจะออก
โปรแกรมจะต้องตอบสนองทันทีเมื่อกดปุ่มต่อไปนี้โดยผู้ใช้ (ซึ่งหมายความว่าคุณจะต้องใช้คุณสมบัติภาษาหรือไลบรารีที่สามารถตรวจจับคีย์ที่ถูกกดและตอบสนองทันทีโดยไม่ต้องอ่านจากอินพุตมาตรฐาน) การกระทำดังต่อไปนี้:
f: หาก Hunger มากกว่า 8 และ Food ไม่ใช่ศูนย์อาหารจะลดลง 1 และ Hunger จะลดลง 9s: Sleep ถูกรีเซ็ตเป็น 0p: หาก Potion มากกว่าศูนย์ Potions จะลดลง 1 และพลังชีวิตจะเพิ่มขึ้น 9b: หากเงินมากกว่า 8 เงินจะลดลง 9 และ Potions จะเพิ่มขึ้น 1t: หากเงินมากกว่า 8 เงินจะลดลง 9 และอาหารเพิ่มขึ้น 1
เมื่อใดก็ตามที่ค่าสถิติที่เปลี่ยนพวกเขาจะต้องแสดงบนหน้าจอในรูปแบบ ต้องแสดงสถิติทั้งหกเมื่อใดก็ตามที่มีการเปลี่ยนแปลง และสถิติภายในจอแสดงผลจะต้องคั่นด้วยเครื่องหมายจุลภาคหรือขึ้นบรรทัดใหม่Stat: value
ความท้าทายนี้ตามปกติ รหัสกอล์ฟกฎ: โปรแกรมสั้นที่สุดที่ปฏิบัติตามข้อกำหนดข้างต้นชนะ (โปรดทราบว่าตามปกติถ้าภาษาใหม่กว่าการแข่งขันการส่งจะต้องทำเครื่องหมายว่าไม่แข่งขัน)
