開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Scheme (プログラミング言語)
- kscm(コンパイラ(ksc)・インタプリタ(ksi)、実装)
- 計算機プログラムの構造と解釈(参考書籍)
Head First JavaScript Programming (Eric T. Freeman (著)、Elisabeth Robson (著)、O'Reilly Media)の Chapter 2.(Going further - Writing Real Code)、How the while loop works の SHARPEN YOUR PENCIL(No. 1332) を Scheme で取り組んでみる。
SHARPEN YOUR PENCIL(No. 1332)
コード(Emacs)
(begin
(define location1 3)
(define location2 4)
(define location3 5)
(define hits 0)
(define gusses 0)
(define sunk? #f)
(define (sunk bln)
(if (not bln)
((lambda ()
(display "Ready, aim, fire! (enter number from 0-6): ")
(define guess (read))
(if (and (integer? guess)
(<= 0 guess 6))
((lambda ()
(if (or (= guess location1)
(= guess location2)
(= guess location3))
(set! hits (+ hits 1)))
(display hits)
(newline)
(sunk bln)))
((lambda ()
(display "Please enter a valid cell number!\n")
(sunk bln))))))))
(sunk #f)
'done)
入出力結果(Terminal, REPL)
$ ./ksi > (load "./battleship.scm") Ready, aim, fire! (enter number from 0-6): -1 Please enter a valid cell number! Ready, aim, fire! (enter number from 0-6): 0 0 Ready, aim, fire! (enter number from 0-6): 1 0 Ready, aim, fire! (enter number from 0-6): 2 0 Ready, aim, fire! (enter number from 0-6): 3 1 Ready, aim, fire! (enter number from 0-6): 4 2 Ready, aim, fire! (enter number from 0-6): 5 3 Ready, aim, fire! (enter number from 0-6): 6 3 Ready, aim, fire! (enter number from 0-6): 7 Please enter a valid cell number! Ready, aim, fire! (enter number from 0-6): C-c C-c $
0 コメント:
コメントを投稿