Cool, Inform7 항목입니다. :) 나는 이것을 시도해보아야했다.
이것이 의도 한 해결책이라고 확신합니다.
R is a room.
To f (n - number): say "[n * n * real square root of n]".
이 솔루션은 real square root of
함수 사용으로 인해 Glulx 백엔드로 컴파일 된 경우에만 작동 합니다.
BTW, 큰 따옴표와 대괄호는 실제로 불필요합니다. 그냥 say n * n * real square root of n
잘 작동합니다. 명령이 끝날 때의 기간도 생략 할 수 있습니다. 또는 첫 번째 기간을 유지하고 개행을 대신 제거 할 수 있습니다. 우리가 다룰 수있는 코드의 다른 부분에는 "방"앞의 기사 "a"와 괄호 앞과 콜론 뒤의 공백이 포함됩니다. 다행스럽게도 여분의 대괄호 쌍이 있으므로 항상이 대괄호를 사용하여 이러한 모든 추가 문자를 주석 처리 할 수 있습니다. ;) 따라서 이것은 유효한 해결책이기도합니다.
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
이 솔루션을 대화식으로 테스트하려면 코드에 다음 테스트 하네스를 추가하는 것이 편리합니다.
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
프로그램을 컴파일하고 실행 한 후 f 4. f 6. f 9. f 25
, >
프롬프트 에서 예 를 들어 다음과 같은 결과를받을 수 있습니다.
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 (또는 아마도 Glulx)이 마지막 소수점 이하 자리를 반올림한다는 것을 알았습니다. f 6
올바른 값은 88.18164보다 88.18163에 훨씬 가깝습니다. 운 좋게도,이 문제가 "선택한 반올림 메커니즘"을 지정했기 때문에 이것이 솔루션의 정확성에 영향을 미치지 않는다고 생각합니다. :)