Fantastico, una voce Inform7. :) Ho appena dovuto provare questo.
Sono abbastanza sicuro che questa sia la soluzione prevista:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
Si noti che questa soluzione funziona solo se compilata con il back-end Glulx, a causa dell'uso della real square root of
funzione.
A proposito, le doppie virgolette e le parentesi quadre non sono effettivamente necessarie; solo say n * n * real square root of n
avrebbe funzionato altrettanto bene. Anche i periodi alla fine dei comandi potrebbero essere omessi; oppure potremmo mantenere il primo periodo e liberarci delle nuove righe invece. Altre parti del codice che potremmo tagliare includono l'articolo "una" prima della "stanza" e gli spazi prima delle parentesi e dopo i due punti. Fortunatamente, poiché abbiamo un paio di parentesi di riserva, possiamo sempre usarle per commentare tutti questi personaggi extra. ;) Quindi anche questa è una soluzione valida:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
Per testare questa soluzione in modo interattivo, è conveniente aggiungere al codice qualcosa come il seguente cablaggio di test:
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
Dopo aver compilato ed eseguito il programma, è possibile digitare ad esempio f 4. f 6. f 9. f 25
al >
prompt e ricevere qualcosa come il seguente output:
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
>
A proposito, ho appena notato che Inform (o presumibilmente, piuttosto, Glulx) arrotonda l'ultimo punto decimale dell'errore f 6
: il valore corretto è molto più vicino a 88.18163 che a 88.18164. Fortunatamente, non penso che ciò influisca sulla correttezza delle soluzioni, soprattutto perché la sfida ha specificato "qualsiasi meccanismo di arrotondamento di tua scelta". :)