Thật tuyệt, một mục thông tin7. :) Tôi chỉ phải thử cái này thôi.
Tôi khá chắc chắn đây là giải pháp dự định:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
Lưu ý rằng giải pháp này chỉ hoạt động nếu được biên dịch với back-end Glulx, do sử dụng real square root of
chức năng.
BTW, dấu ngoặc kép và dấu ngoặc vuông thực sự không cần thiết; chỉ say n * n * real square root of n
làm việc tốt thôi Các dấu chấm ở cuối các lệnh cũng có thể được bỏ qua; hoặc chúng ta có thể giữ giai đoạn đầu tiên và thay vào đó là loại bỏ các dòng mới. Các phần khác của mã chúng ta có thể cắt bỏ bao gồm bài viết "a" trước "phòng" và khoảng trắng trước dấu ngoặc đơn và sau dấu hai chấm. May mắn thay, vì chúng ta đã có một cặp dấu ngoặc dự phòng, chúng ta luôn có thể sử dụng chúng để nhận xét tất cả các ký tự phụ này. ;) Vì vậy, đây cũng là một giải pháp hợp lệ:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
Để kiểm tra giải pháp này một cách tương tác, thật tiện lợi khi thêm một cái gì đó giống như khai thác thử nghiệm sau vào mã:
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
Sau khi biên dịch và chạy chương trình, bạn có thể gõ ví dụ f 4. f 6. f 9. f 25
tại >
dấu nhắc và nhận một cái gì đó giống như đầu ra sau:
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, tôi chỉ nhận thấy rằng Thông báo (hoặc có lẽ, đúng hơn, Glulx) làm tròn số thập phân cuối cùng của f 6
sai: giá trị đúng là nhiều gần gũi hơn với 88,18163 hơn để 88,18164. May mắn thay, tôi không nghĩ rằng điều này ảnh hưởng đến tính chính xác của (các) giải pháp, đặc biệt là khi thử thách chỉ định "bất kỳ cơ chế làm tròn nào bạn chọn". :)