Genial, una entrada de Inform7. :) Solo tuve que intentarlo.
Estoy bastante seguro de que esta es la solución prevista:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
Tenga en cuenta que esta solución solo funciona si se compila con el back-end de Glulx, debido al uso de la real square root of
función.
Por cierto, las comillas dobles y los corchetes son realmente innecesarios; simplemente say n * n * real square root of n
funcionaría igual de bien. Los períodos al final de los comandos también podrían omitirse; o podríamos mantener el primer período y deshacernos de las nuevas líneas. Otras partes del código que podríamos recortar incluyen el artículo "a" antes de "room" y los espacios antes de los paréntesis y después de los dos puntos. Afortunadamente, dado que tenemos un par de paréntesis de repuesto, siempre podemos usarlos para comentar todos estos caracteres adicionales. ;) Entonces, esta también es una solución válida:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
Para probar esta solución de forma interactiva, es conveniente agregar al código algo como el siguiente arnés de prueba:
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
Después de compilar y ejecutar el programa, puede escribir, por ejemplo, f 4. f 6. f 9. f 25
en el >
indicador y recibir algo como el siguiente resultado:
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
>
Por cierto, acabo de notar que Informar (o presumiblemente, más bien, Glulx) redondea el último decimal del f 6
error: el valor correcto está mucho más cerca de 88.18163 que de 88.18164. Afortunadamente, no creo que esto afecte la corrección de las soluciones, especialmente porque el desafío especificó "cualquier mecanismo de redondeo de su elección". :)