我需要一个算法,给出一组多米诺骨牌,返回游戏的每一个可能的结局。
我已经找到了这个,Prolog domino game,但是它只是增加了集合的要求,所以它并没有给您提供所有可能的解决方案。
我用这个[5-4, 4-3, 3-2, 2-1]
替换了这个[[5,4], [4,3], [3,2], [2,1]]
,并尝试添加这一行domino_order(In, X, [Out|[X,Y]]) :- select(Piece, In, Remaining), swap_or_not(Piece, [X,Y]), domino_order(Remaining, Y, Out).
,但是它不起作用。
发布于 2016-12-29 12:58:07
写下详细的逻辑会导致一些复杂的代码。相反,我建议快速检查有效性,并让Prolog计算插入点。
domino :-
Spare = [4-7,3-4], Curr = [1-2,2-3],
domino_row_add_spare(Curr, Spare, R),
writeln(R).
domino_row_add_spare(C, [], C).
domino_row_add_spare(C, Sps, U) :-
append(L, R, C),
select(X-Y, Sps, Rest),
(append(L, [X-Y|R], C1) ; append(L, [Y-X|R], C1)),
valid(C1),
domino_row_add_spare(C1, Rest, U).
valid([_]).
valid([_-X,X-Y|R]) :- valid([X-Y|R]).
https://stackoverflow.com/questions/41378851
复制相似问题