このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 155代目 #844 # [1] 授業単元:C言語 # [2] 問題文(含コード&リンク): http://ime.nu/ideone.com/tsgjF # 人対人の3目並べです。int check_board(void)で現在の局面を調べOが勝ちならば1を返し、Xが勝ちならば2、引き分けならば3を返すプログラムを作成したいです。 # '人対人の3目並べです。int check_board(void)で現在の局面を調べOが勝ちならば1を返し、Xが勝ちならば2、引き分けならば3を返す'(_盤面,_勝負の結果) :- 勝負に関係する三つならびに全ての値が等しいものがある(_盤面,_値), 結果を返す(_値,_勝負の結果). '人対人の3目並べです。int check_board(void)で現在の局面を調べOが勝ちならば1を返し、Xが勝ちならば2、引き分けならば3を返す'(_盤面,3) :- '勝負に関係する全ての三つならびが、三つの中のどれかは他とことなる値を持つ'(_盤面). 勝負に関係する三つならびに全ての値が等しいものがある(_盤面,_値) :- 連続(_盤面,_連続), 全ての値が等しい(_連続,A). '勝負に関係する全ての三つならびが、三つの中のどれかは他とことなる値を持つ'(_盤面) :- forall(連続(_盤面,_連続),中に他と異なる値を持つものがある(_連続)). 連続([[A,B,C],[D,E,F],[G,H,I]],[A,B,C]). 連続([[A,B,C],[D,E,F],[G,H,I]],[D,E,F]). 連続([[A,B,C],[D,E,F],[G,H,I]],[G,H,I]). 連続([[A,B,C],[D,E,F],[G,H,I]],[A,D,G]). 連続([[A,B,C],[D,E,F],[G,H,I]],[B,E,H]). 連続([[A,B,C],[D,E,F],[G,H,I]],[C,F,I]). 連続([[A,B,C],[D,E,F],[G,H,I]],[A,E,I]). 連続([[A,B,C],[D,E,F],[G,H,I]],[C,E,G]). 結果を返す(o,1). 結果を返す(x,2). 全ての値が等しい([],_). 全ての値が等しい([_値|R],_値) :- 全ての値が等しい(R,_値). 中に他と異なる値を持つものがある(_ならび) :- \+(全ての値が等しい(_ならび,_)).