Harika, bir Inform7 girişi. :) Ben sadece bunu denemek zorunda kaldı.
Eminim bu amaçlanan çözümdür:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
Bu çözümün, real square root of
fonksiyonun kullanılması nedeniyle sadece Glulx arka ucu ile derlenmişse işe yaradığını unutmayın .
BTW, çift tırnak işaretleri ve köşeli parantezler aslında gereksizdir; sadece say n * n * real square root of n
aynı şekilde çalışır. Komutların sonundaki süreler de atlanabilir; ya da ilk dönemi koruyabilir ve bunun yerine yeni satırlardan kurtulabiliriz. Kodun diğer bölümleri, "a" odasından önce "ve" parantez öncesi ve kolondan sonraki boşluklar "makalesini içerir. Neyse ki, yedek bir parantezimiz olduğu için, bunları tüm bu ekstra karakterleri yorumlamak için kullanabiliriz. ;) Yani bu da geçerli bir çözüm:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
Bu çözümü etkileşimli olarak test etmek için koda aşağıdaki test kablo demeti gibi bir şey eklemek uygundur:
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
Programı derledikten ve çalıştırdıktan sonra, örneğin f 4. f 6. f 9. f 25
bilgi >
istemine yazabilir ve aşağıdaki çıktıya benzer bir şey alabilirsiniz:
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, Inform'in (veya muhtemelen Glulx'un) son ondalık hatayı f 6
yanlış yuvarladığını fark ettim : doğru değer 88.18163'e 88.18164'ten çok daha yakın. Neyse ki, özellikle sorun "seçtiğiniz herhangi bir yuvarlama mekanizması" belirtildiğinden, bunun çözümlerin doğruluğunu etkilediğini düşünmüyorum. :)