開発環境
- 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 コメント:
コメントを投稿