?- 'a##'. c156-868#
このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1328276597/868
#  #include <time.h> 
#  #include <stdio.h> 
#  #include <stdlib.h> 
#   
#  int main(void) 
#  { 
#   int no; 
#   int ans; 
#   srand(time(NULL)); 
#   ans=rand()%10; 
#   printf("0〜9の整数を当ててください"); 
#   do{ 
#    printf("いくつですか"); 
#    scanf("%d",&no); 
#    if(no>ans) 
#    printf("もっと小さい\n"); 
#   else if(no<ans) 
#    printf("もっと大きい\n"); 
#   }while(no!=ans); 
#   printf("当たりです\n"); 
#  return(0); 
#  } 
#   
#  っていう0〜9の数字を当てるハイ&ローのプログラムなんだけど 
#  これに残りの入力できる回数を追加したいんだけど残り回数=nokoriとして 
#  入力できる回数をkai=10とした場合のプログラムを教えてください 
# 
# 

入力できる回数(3).

'0〜9の数字を当てるハイ&ロー'(_目標数字,_結果) :-
        _目標数字 is random(10),
        入力できる回数(_入力できる回数),
        数字入力(_入力できる回数,_数字),
        '0〜9の数字を当てるハイ&ロー'(_入力できる回数,_数字,_目標数字,_結果).

'0〜9の数字を当てるハイ&ロー'(0,_,_,'入力する権利を失いました。あなたの負けです') :- !.
'0〜9の数字を当てるハイ&ロー'(_,_目標数字,_目標数字,'当たりましたです') :- !.
'0〜9の数字を当てるハイ&ロー'(N,_数字,_目標数字,_結果) :-
        判定を表示して次の数字を得る(_数字,_目標数字,N,N_1,_次の数字),
        '0〜9の数字を当てるハイ&ロー'(N_1,_次の数字,_目標数字,_結果).

判定を表示して残り回数と次の数字を得る(_数字,_目標数字,_入力できる回数,_残り回数,_次の数字) :-
        判定(_数字,_目標数字,_判定),
        writef('%t\n',[_判定]),
        _残り回数 is _入力できる回数 - 1,
        数字入力(_残り回数,_次の数字).

判定(_数字,_目標数字,大き過ぎるようです) :-
        _数字 > _目標数字.
判定(_数字,_目標数字,小さ過ぎるようです) :-
        _数字 < _目標数字.

数字入力(_残り回数,_数字) :-
        writef('数字を入力してください。残り回数[%t] : ',[_残り回数]),
        get_line(Line),
        数字入力診断(Line,_数字),!.
数字入力(_残り回数,_数字) :-
        数字入力(_残り回数,_数字).

数字入力診断(Line,_数字) :-
        atom_to_term(Line,_数字,_),
        integer(_数字),
        _数字 >= 0,
        _数字 =< 9,!.
数字入力診断(Line,_数字) :-
        writef('入力された%tからは適切な数字[0~9]が得られません。再入力をお願いします\n',[Line]),
        fail.