このディレクトリの索引 http://hibari.2ch.net/test/read.cgi/tech/1294061094/636 # 1] 授業単元:プログラミング # [2] 問題文(含コード&リンク):http://ime.nu/ywata-lab.yz.yamagata-u.ac.jp/PDF/pro2-1-19.pdf # # 課題9: # コンピュータ(com)とあなた(you)がジャンケンをするプ # ログラムにおいて,以下の2つユーザ関数に作成して, # 実行できるようにせよ # 1.コンピュータ(com)の「手」を出力する # int Rival(void) # 2.勝敗を判定し,出力する # void Judge(int you, int com) 私とコンピュータがジャンケンをする(_勝負) :- 私とコンピュータが手を出し合う(_私の拳,_コンピュータの拳), '勝敗を判定し,出力する'(_私の拳,_コンピュータ拳,_勝負), 勝負が決する(_勝負). 私とコンピュータがジャンケンをする(_勝負) :- 私とコンピュータがジャンケンをする(_勝負). 私とコンピュータが手を出し合う(_私の拳,_コンピュータの拳) :- 私の「手」を出力する(_私の拳), 'コンピュータ(com)の「手」を出力する'(_コンピュータの拳). 私の「手」を出力する(_私の拳) :- write('サイショはグー ジャンケンポン : '), 行入力(_私の拳), writef('私: %w 対 ',[_私の拳]). 'コンピュータ(com)の「手」を出力する'(_コンピュータの拳) :- 乱数によってコンピュータの「手」を決める(_コンピュータの拳), 「手」を出力する(_コンピュータの拳). '勝敗を判定し,出力する'(_私の拳,_コンピュータ拳,_勝負) :- 勝敗を判定し(_拳,_拳,_勝負), 出力する(_勝負). 勝敗を判定し(_拳,_拳,あいこ) :- !. 勝敗を判定し(グー,チョキ,私の勝ち) :- !. 勝敗を判定し(チョキ,パー,私の勝ち) :- !. 勝敗を判定し(パー,グー,私の勝ち) :- !. 勝敗を判定し(_,_,コンピュータの勝ち). 出力する(_勝負) :- writef('%t です\n',[_勝負]). 乱数によってコンピュータの「手」を決める(_拳) :- Nth1 is random(3) + 1, nth1(Nth1,[グー,チョキ,パー],_拳). 「手」を出力する(_コンピュータの拳) :- writef('コンピュータ: %w\n',[_コンピュータの拳]). 行入力(_行) :- read_line_to_codes(current_input,Codes), atom_codes(_行,Codes). 勝負が決する(_勝負) :- \+(_勝負 = あいこ).