用prolog解填字游戏

一道常见的填字游戏题目,题目如下:
[img]http://dl.iteye.com/upload/attachment/0076/6822/7020ef5d-2176-3cb0-b976-fa44c8a60175.png[/img]
在上面的白色方框内填入适合的单词,可供选择的单词有:dog,run,top,five,four,lost,mess,unit,baker,forum,green,super, prolog, vanish, wonder,yellow。

遵照prolog的原则,只要描述清楚整个问题就可以了,不需要去描述怎么解决问题。试着写了如下代码:

word(d,o,g). word(r,u,n).
word(t,o,p). word(f,i,v,e).
word(f,o,u,r). word(l,o,s,t).
word(m,e,s,s). word(u,n,i,t).
word(b,a,k,e,r). word(f,o,r,u,m).
word(g,r,e,e,n). word(s,u,p,e,r).
word(p,r,o,l,o,g). word(v,a,n,i,s,h).
word(w,o,n,d,e,r). word(y,e,l,l,o,w).
query:-
word(L1,L2,L3,L4,L5),
word(L9,L10,L11,L12,L13,L14),
word(L1,L6,L9,L15),
word(L3,L7,L11),
word(L5,L8,L13,L16),
writef('word1 is : %w%w%w%w%w\n', [L1, L2, L3, L4, L5]),
writef('word2 is : %w%w%w%w%w%w\n', [L9,L10,L11,L12,L13,L14]),
writef('word3 is : %w%w%w%w\n', [L1,L6,L9,L15]),
writef('word4 is : %w%w%w\n', [L3,L7,L11]),
writef('word5 is : %w%w%w%w\n', [L5,L8,L13,L16]).

把代码保存为test.pl文件,命令行键入swipl打开swi-prolog的repl。然后加载test.pl文件,加载完毕后键入query. 神奇的答案就出来啦~~~。如图:
[img]http://dl.iteye.com/upload/attachment/0076/6936/5b98e5f5-adc0-3fdb-8a0d-8209ea814d76.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值