`

用prolog解填字游戏

阅读更多
一道常见的填字游戏题目,题目如下:

在上面的白色方框内填入适合的单词,可供选择的单词有: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. 神奇的答案就出来啦~~~。如图:
0
0
分享到:
评论

相关推荐

    prolog 小型数独游戏

    这是我的一个作业,用prolog写的一个只有16格的数独游戏。

    SWI-prolog 软件 及 Prolog 教程

    1. **编写Prolog程序**:用户可以在SWI-Prolog的交互式环境中直接输入规则,或者在外部文本编辑器中编写`.pl`文件,然后用SWI-Prolog加载。 2. **查询与调试**:通过`consult/1`指令加载程序,然后输入查询进行推理...

    Escape Game in Prolog

    用prolog写的逃生类小游戏。可以用来学习prolog里的基础知识。

    Prolog学习教程 - 整理版.pdf

    - Prolog简单查询和复杂查询:讲解了如何使用Prolog进行问题求解。 - Prolog规则:介绍了规则的定义和使用,规则是基于已知事实推导出新结论的方式。 - Prolog数据管理:涉及如何在Prolog中进行数据存储和管理。 - ...

    prolog 教程及实例

    ### Prolog 教程及实例知识点详解 #### 一、Prolog 概述与入门 **Prolog** 是一种逻辑编程语言...通过对事实和规则的定义,我们可以用 Prolog 来解决各种逻辑问题,这对于理解和开发基于规则的人工智能系统非常重要。

    prolog 8字方格代码

    用swi-prolog做的.有制定的初始状态,到一个终止状态有先步骤转换,运用了3中搜索方法,深度搜索,广度搜索和最优搜索。

    SWI-prolog及使用手册

    SWI-Prolog(SWI-Prolog,即斯德哥尔摩Prolog系统)是一款广泛使用的开源Prolog解释器,它由Jan Wielemaker开发,以其丰富的库、良好的跨平台支持和易于集成其他语言而闻名。在Prolog的世界里,SWI-Prolog是一个极具...

    利用Prolog实现递归规则

    在Prolog中,可以使用递归方法定义路径,判断给定图的任意结点间路径是否存在。例如,使用递归规则可以定义一个谓词path(X,Y),表示从结点X到结点Y是否存在路径。可以使用以下规则来定义: ``` path(X,Y) :- edge(X,...

    prolog实现简单的数独游戏

    用编译器swi - prolog编写的数独小例子,包含递归,内部谓词等操作。数独游戏是4*4的,但是代码很明确,可以很容易的进行修改成9*9的,切记在swi - prolog下执行

    Visual Prolog 7 中文 教程.pdf

    Visual Prolog 7版本可能包含了一些新的功能和改进,使它更加强大和易于使用。 例如,它可能引入了对最新操作系统和硬件平台的支持,增加了对新算法和数据结构的内置支持,或者改进了其并发编程模型,使其更适合...

    Prolog语言详细教程

    如果存在多个解,Prolog会按顺序返回所有可能的解。如果找不到解,则返回 `no`。此外,Prolog还支持非确定性查询,即返回多个可能的答案,这在处理不确定性和多解问题时非常有用。 #### 六、Prolog的应用领域 由于...

    Visual Prolog 8 Language Reference

    这些概念是理解和使用Visual Prolog语言的基础。 程序结构通常包括程序的主体(goal),以及一系列的类声明和类实现。程序的主体定义了程序开始执行的入口点。类声明和类实现包含了定义程序行为和数据结构的代码。...

    prolog

    Prolog解释器使用反向链式推理来执行程序。它从查询出发,尝试找到满足查询的规则和事实,并回溯到上一步,直到找到解决方案或无法继续为止。 **3. 控制结构** Prolog中的控制结构不同于其他编程语言,主要依赖于...

    Visual Prolog 语言教程

    第一部分 Visual Prolog概述 第1章 Visual Prolog开发环境 描述如何将Visual Prolog安装到你的计算机上,如何使用Visual Prolog的可视化开发环境来运行本书所提供的例子,提供一个快速指南,包括创建、运行及保存你...

    prolog 软件实用版

    4. **模式匹配(Pattern Matching)**:Prolog 使用模式匹配来解析和绑定变量。当一个规则的头部分与查询相匹配时,Prolog 将尝试对规则体进行求解。 5. **反向推理(Backtracking)**:Prolog 的一大特色是反向...

    用prolog实现8数码问题

    下面将详细介绍如何用Prolog实现8数码问题,以及涉及的关键概念。 首先,Prolog是一种基于 Horn子句 的推理系统,它的核心是事实、规则和查询。在8数码问题的实现中,我们需要定义问题的状态、状态之间的转移规则...

    nani的prolog实现

    例如,如果“nani”问题是一个关于数字序列的问题,我们可以定义一系列的事实(如数字列表)和规则(如找出所有连续的偶数序列),然后用Prolog的查询语句来找出符合规则的序列。以下是一个简单的示例: ```prolog ...

    prolog manual.pdf

    How to Run Prolog 2. Sample Programs -- Descriptions 2.1 Map colorings 2.2 Two factorial definitions 2.3 Towers of Hanoi puzzle 2.4 Loading programs, editing programs 2.5 Negation as failure 2.6...

    人工智能导论_斑马问题prolog代码

    在这个程序中,我们可以学习到如何在Prolog中建立规则以处理条件限制,如使用`dif/2`来表示两个元素不相等,使用`member/2`来检查列表中是否存在某个元素等。 Prolog的解题过程基于反向推理,从结果出发,回溯寻找...

Global site tag (gtag.js) - Google Analytics