このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/872
#  [1] 授業単元:計算機実習  
#  [2] 問題文(含コード&リンク): 
#  whileを用いて数当てゲームを作りなさい 
#  ・コンピュータが乱数で1から1000までの数を用意する. 
#  ・プレイヤがキーボードから数を入れる. 
#  ・コンピュータの数より大きければ「大きい」,小さければ「小さい」と画面に表示する. 
#  ・コンピュータの数とプレイヤの数が同じでなければ,繰り返す. 
#  「何回で当てられたか」を表示させる.  
#  

'whileを用いて数当てゲームを作りなさい 
・コンピュータが乱数で1から1000までの数を用意する. 
・プレイヤがキーボードから数を入れる. 
・コンピュータの数より大きければ「大きい」,小さければ「小さい」と画面に表示する. 
・コンピュータの数とプレイヤの数が同じでなければ,繰り返す. 
「何回で当てられたか」を表示させる.' :-
        コンピュータが乱数で1から1000までの数を用意する(_1から1000までの乱数),
        プレイヤがキーボードから数を入れる(0,_何回目,_数),
        'コンピュータの数より大きければ「大きい」,小さければ「小さい」と画面に表示する'(_1から1000までの乱数,_数,_診断),
        'コンピュータの数とプレイヤの数が同じでなければ,繰り返す'(_診断),
        writef('%t回で当てることができました。おめでとうございます。\n',[_何回目]).

コンピュータが乱数で1から1000までの数を用意する(_1から1000までの乱数) :-
        _1から1000までの乱数 is random(1000) + 1.

プレイヤがキーボードから数を入れる(N_1,N,_数) :-
        N is N_1 + 1,
        整数を得る(数,(_数 >= 1,_数 =< 1000),_,_数).
プレイヤがキーボードから数を入れる(N_1,N,_数) :-
        N_2 is N_1 + 1,
        プレイヤがキーボードから数を入れる(N_2,N,_数).

'コンピュータの数より大きければ「大きい」,小さければ「小さい」と画面に表示する'(_1から1000までの乱数,_数,大きい) :-
        'コンピュータの数より大きければ「大きい」,小さければ「小さい」と'(_1から1000までの乱数,_数,_診断),
        画面に表示する(_診断).
        writef('%t\n',[_診断]).

'コンピュータの数より大きければ「大きい」,小さければ「小さい」と'(_1から1000までの乱数,_数,大きい) :-
        _1から1000までの乱数 < _数.
'コンピュータの数より大きければ「大きい」,小さければ「小さい」と'(_1から1000までの乱数,_数,小さい) :-
        _1から1000までの乱数 > _数.
'コンピュータの数より大きければ「大きい」,小さければ「小さい」と'(_1から1000までの乱数,_数,コンピュータの数とプレイヤの数が同じ) :-
        _1から1000までの乱数 = _数.

'コンピュータの数とプレイヤの数が同じでなければ,繰り返す'(コンピュータの数とプレイヤの数が同じ).

画面に表示する(_診断) :-
        writef('%t\n',[_診断]).