トップページ > プログラム > 2014年10月31日 > g6D744er

書き込み順位&時間帯一覧

25 位/204 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000012003



使用した名前一覧書き込んだスレッド一覧

デフォルトの名無しさん
783
集合論に基づいた言語を作りたい
【論理】Prolog【初心者】

書き込みレス一覧

集合論に基づいた言語を作りたい
668 :[sage]:2014/10/31(金) 20:03:03.95 ID:g6D744er
prologのconnect4がどうしても動かん。
誰か俺のコードをデバッグしてくれ。現状のコードは以下。
get_atでリストのN番目の要素を返す。
get_stoneでBOARDの(X,Y)の位置にある石を返す。盤の外を指定したときは3を返す。
straightで連続した石の数を数える。DX,DYは連続した石を探索する方向。

board([[],[],[],[],[],[],[]]).
myboard([[1,2],[1,1],[1,1,1],[1,1,1,2],[],[],[1,2,1]]).
get_at(_,[],_):- fail.
get_at(0,[X|_],X).
get_at(N,[_|Ls],Y):-
N1 is N -1,
get_at(N1,Ls,Y).
get_stone(_,X,_,3):- X<0,!.
get_stone(_,X,_,3):- 6<X,!.
get_stone(_,_,Y,3):- Y<0,!.
get_stone(BOARD,X,Y,0):-
get_at(X,BOARD,Xs),
length(Xs,L),
Y >= L,!.
get_stone(BOARD,X,Y,S):-
get_at(X,BOARD,Xs),
get_at(Y,Xs,S),!.
straight(BOARD,X,Y,_,_,S,0):-
get_stone(BOARD,X,Y,S1),
S1 \== S,!.
straight(BOARD,X,Y,DX,DY,Stn,Len):-
X1 is X + DX,
Y1 is Y + DY,
Len1 is Len + 1,
straight(BOARD,X1,Y1,DX,DY,Stn,Len1),!.
【論理】Prolog【初心者】
783 :デフォルトの名無しさん[sage]:2014/10/31(金) 21:05:44.19 ID:g6D744er
すいません。教えてください。
prologでconnect4のルールを実装しようとしています。
connect4はこことかで遊べます。
http://www.connectfour.org/connect-4-online.php

途中までコードを書いたのですが上手く動いてくれません。
私のコードをデバッグしてもらえないでしょうか。
【論理】Prolog【初心者】
784 :783[sage]:2014/10/31(金) 21:07:15.47 ID:g6D744er
二重リストで盤面を表す。
get_atでリストのN番目の要素を返す。
get_stoneでBOARDの(X,Y)の位置にある石を返す。盤の外を指定したときは3を返す。
straightで連続した石の数を数える。DX,DYは連続した石を探索する方向。
よろしくお願いします。
board([[],[],[],[],[],[],[]]).
myboard([[1,2],[1,1],[1,1,1],[1,1,1,2],[],[],[1,2,1]]).
get_at(_,[],_):- fail.
get_at(0,[X|_],X).
get_at(N,[_|Ls],Y):-
N1 is N -1,
get_at(N1,Ls,Y).
get_stone(_,X,_,3):- X<0,!.
get_stone(_,X,_,3):- 6<X,!.
get_stone(_,_,Y,3):- Y<0,!.
get_stone(BOARD,X,Y,0):-
get_at(X,BOARD,Xs),
length(Xs,L),
Y >= L,!.
get_stone(BOARD,X,Y,S):-
get_at(X,BOARD,Xs),
get_at(Y,Xs,S),!.
straight(BOARD,X,Y,_,_,S,0):-
get_stone(BOARD,X,Y,S1),
S1 \== S,!.
straight(BOARD,X,Y,DX,DY,Stn,Len):-
X1 is X + DX,
Y1 is Y + DY,
Len1 is Len + 1,
straight(BOARD,X1,Y1,DX,DY,Stn,Len1),!.


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。