このディレクトリの索引
#  
#  グーを0、チョキを1、パーを2とし、ユーザは自分の出す手をキーボードから入力する。
#  

'グーを0、チョキを1、パーを2とし、ユーザは自分の出す手をキーボードから入力する。'(_自分の出す手) :-
        入力プロセスの生成(Id,Message_queue_Id),
        'グーを0、チョキを1、パーを2とし'(_自分の出す手,_自分の出す手の入力値),
        'ユーザは自分の出す手をキーボードから入力する。'(Id,Message_queue_Id,_自分の出す手の入力値),!.

'グーを0、チョキを1、パーを2とし'(_自分の出す手,_自分の出す手の入力値) :-
        グーを0(_自分の出す手,_自分の出す手の入力値).
'グーを0、チョキを1、パーを2とし'(_自分の出す手,_自分の出す手の入力値) :-
        チョキを1(_自分の出す手,_自分の出す手の入力値).
'グーを0、チョキを1、パーを2とし'(_自分の出す手,_自分の出す手の入力値) :-
        パーを2(_自分の出す手,_自分の出す手の入力値).

グーを0(グー,0).

チョキを1(チョキ,1).

パーを2(パー,2).

'ユーザは自分の出す手をキーボードから入力する。'(Id,Message_queue_Id,_自分の出す手の入力値) :-
        キーボードから(_キーボードの入力ストリーム),
        入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,Line),
        atom_number(Line,_自分の出す手の入力値).


入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,_情報) :-
        入力プロセスから一度得た情報(Id,Message_queue_Id,Term),
        入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,Term,_情報).
入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,_情報) :-
        入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,_情報).

入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,_情報,_情報).
入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,_情報,_情報) :-
        thread_peek_massage(Message_queue_Id,_次の情報),!,fail.
入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,Term,_情報) :-
        入力プロセスから一度得た情報を何度も供給する(Id,Message_queue_Id,Term,_情報).

入力プロセスから一度得た情報(Id,Message_queue_Id,Term) :-
        thread_get_message(Message_queue_Id,Term).



入力プロセスの生成(Id,Message_queue_Id) :-
        thread_create(キーボードからの入力(Message_queue_Id),Id,[]).

キーボードからの入力(Message_queue_Id) :-
        message_queue_create(Message_queue_Id),
        キーボードからの入力(Message_queue_Id).

キーボードからの入力(Message_queue_Id) :-
        reapeat,
        キーボードから(Instream),
        get_line(Instream,Line),
        thread_send_message(Message_queue_Id,Line),
        fail.

キーボードから(user_input).