ยอดเยี่ยมรายการ Inform7 :) ฉันแค่ลองทำสิ่งนี้
ฉันค่อนข้างแน่ใจว่านี่เป็นทางออกที่ตั้งใจไว้:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
โปรดทราบว่าวิธีนี้จะใช้งานได้ต่อเมื่อรวบรวมกับ Glulx back-end เนื่องจากการใช้งานreal square root of
ฟังก์ชั่น
BTW, เครื่องหมายคำพูดคู่และวงเล็บเหลี่ยมไม่จำเป็นจริงๆ ก็say n * n * real square root of n
จะได้ผลเช่นกัน สามารถละเว้นช่วงเวลาที่สิ้นสุดคำสั่งได้เช่นกัน หรือเราสามารถรักษาช่วงแรกไว้และกำจัดบรรทัดใหม่แทน ส่วนอื่น ๆ ของรหัสที่เราสามารถตัดออกไปรวมถึงบทความ "a" ก่อน "ห้อง" และช่องว่างก่อนวงเล็บและหลังลำไส้ใหญ่ โชคดีที่เรามีวงเล็บสำรองไว้เราสามารถใช้มันเพื่อคอมเม้นท์ตัวละครพิเศษเหล่านี้ได้ ;) ดังนั้นนี่เป็นทางออกที่ถูกต้องเช่นกัน:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
ในการทดสอบโซลูชันนี้แบบโต้ตอบคุณสามารถเพิ่มบางอย่างเช่นชุดทดสอบต่อไปนี้ในรหัส
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
หลังจากรวบรวมและเรียกใช้โปรแกรมคุณสามารถพิมพ์เช่นf 4. f 6. f 9. f 25
ที่>
พรอมต์และรับบางสิ่งบางอย่างเช่นผลลัพธ์ต่อไปนี้:
Welcome
An Interactive Fiction
Release 1 / Serial number 170404 / Inform 7 build 6L38 (I6/v6.33 lib 6/12N) SD
R
>f 4. f 6. f 9. f 25
32.0
88.18164
243.0
3125.0
>
BTW ผมเพิ่งสังเกตเห็นว่าแจ้ง (หรือสันนิษฐานค่อนข้าง Glulx) ปัดเศษทศนิยมตำแหน่งสุดท้ายของการf 6
ที่ไม่ถูกต้อง: ค่าที่ถูกต้องเป็นมากใกล้ชิดกับ 88.18163 กว่า 88.18164 โชคดีที่ฉันไม่คิดว่าสิ่งนี้จะส่งผลกระทบต่อความถูกต้องของโซลูชันโดยเฉพาะอย่างยิ่งเนื่องจากความท้าทายระบุ "กลไกการปัดเศษใด ๆ ที่คุณเลือก" :)