首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU编译失败

GNU编译失败
EN

Stack Overflow用户
提问于 2021-02-03 05:19:22
回答 1查看 167关注 0票数 1
代码语言:javascript
复制
other_bank(e,w).
other_bank(w,e).
% farmer,wolf,goat,cabbage
move([X,X,Goat,Cabbage],wolf,[Y,Y,Goat,Cabbage]) :- other_bank(X,Y).
move([X,Wolf,X,Cabbage],goat,[Y,wolf,Y,Cabbage]) :- other_bank(X,Y).
move([X,Wolf,Goat,X],cabbage,[Y,Wolf,Goat,Y]) :- other_bank(X,Y).
move([X,Wolf,Goat,Cabbage],nothing,[Y,Wolf,Goat,Cabbage]):-other_bank(X,Y).

safety_check(X,X,_).
safety_check(X,_,X).
safe_status([Man,Wolf,Goat,Cabbage]):-
    safety_check(Man,Goat,Wolf),
    safety_check(Man,Goat,Cabbage).
solution([e,e,e,e],[]).
solution(Config,[Move|OtherMoves]):-
    move(Config,Move,NextConfig),
    safe_status(NextConfig),
    solution(NextConfig,OtherMoves).

% length(X,7),solution([w,w,w,w],X).

在GNU中加载文件时出现.pl编译错误

农民狼羊卷心菜问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-03 07:56:00

你快到了!用小写拼写时,狼是一个常数(大写狼是一个变量)。

代码语言:javascript
复制
other_bank(e,w).
other_bank(w,e).
% farmer,wolf,goat,cabbage
move([X,X,Goat,Cabbage],wolf,[Y,Y,Goat,Cabbage]) :- other_bank(X,Y).
move([X,Wolf,X,Cabbage],goat,[Y,Wolf,Y,Cabbage]) :- other_bank(X,Y).
move([X,Wolf,Goat,X],cabbage,[Y,Wolf,Goat,Y]) :- other_bank(X,Y).
move([X,Wolf,Goat,Cabbage],nothing,[Y,Wolf,Goat,Cabbage]):-other_bank(X,Y).

safety_check(X,X,_).
safety_check(X,_,X).
safe_status([Man,Wolf,Goat,Cabbage]):-
    safety_check(Man,Goat,Wolf),
    safety_check(Man,Goat,Cabbage).
    
solution([e,e,e,e],[]).
solution(Config,[Move|OtherMoves]):-
    move(Config,Move,NextConfig),
    safe_status(NextConfig),
    solution(NextConfig,OtherMoves).

?- length(X,7),solution([w,w,w,w],X).
X = [goat,nothing,wolf,goat,cabbage,nothing,goat]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66021720

复制
相关文章

相似问题

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