首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prolog Domino解决方案

Prolog Domino解决方案
EN

Stack Overflow用户
提问于 2016-12-29 11:31:08
回答 1查看 711关注 0票数 1

我需要一个算法,给出一组多米诺骨牌,返回游戏的每一个可能的结局。

我已经找到了这个,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).,但是它不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-29 12:58:07

写下详细的逻辑会导致一些复杂的代码。相反,我建议快速检查有效性,并让Prolog计算插入点。

代码语言:javascript
运行
复制
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]).
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41378851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档