Keren, entri Inform7. :) Saya hanya harus mencoba yang ini.
Saya cukup yakin ini adalah solusi yang dimaksudkan:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
Perhatikan bahwa solusi ini hanya berfungsi jika dikompilasi dengan back-end Glulx, karena penggunaan real square root of
fungsi.
BTW, tanda kutip ganda dan tanda kurung siku sebenarnya tidak perlu; hanya say n * n * real square root of n
akan bekerja dengan baik. Periode di akhir perintah bisa dihilangkan juga; atau kita bisa menjaga periode pertama dan menyingkirkan baris baru sebagai gantinya. Bagian lain dari kode yang dapat kita potong termasuk artikel "a" sebelum "room" dan spasi sebelum tanda kurung dan setelah titik dua. Untungnya, karena kita punya sepasang tanda kurung, kita selalu dapat menggunakannya untuk mengomentari semua karakter tambahan ini. ;) Jadi ini adalah solusi yang valid juga:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
Untuk menguji solusi ini secara interaktif, lebih mudah untuk menambahkan sesuatu seperti test harness berikut ke kode:
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
Setelah mengkompilasi dan menjalankan program, Anda dapat mengetik misalnya f 4. f 6. f 9. f 25
pada >
prompt dan menerima sesuatu seperti output berikut:
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, saya baru saja memperhatikan bahwa Inform (atau mungkin, lebih tepatnya, Glulx) mengitari tempat desimal terakhir yang f 6
salah: nilai yang benar jauh lebih dekat ke 88,18163 daripada ke 88,18164. Untungnya, saya tidak berpikir ini mempengaruhi kebenaran solusi, terutama karena tantangannya menentukan "mekanisme pembulatan pilihan Anda". :)