牧师与恶魔过河游戏

1. 人物  环境

2. 牧师(三个) 恶魔(三个) 岸(两边) 船(一艘) 河(一条)  座位(两个)

3. 类是对象的抽象;对象是类的实例。比如:水果是类,而苹果是对象。

4. 属性:1).杀牧师   用叉子叉死牧师    2).过河  翻跟头进入船中

5.  

   Procedure

   Onclick

     If(恶魔在岸上)

        Then(恶魔翻跟头进入船中)

        else(恶魔从船上翻跟头到达岸上)

6.我觉得应该可以吧,比如说类是运动,那么对象是跑步。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牧师和野人过河问题是一个经典的人工智能问题,其目标是将三个牧师和三个野人带到河对岸,但是船只只能搭载两个人,且野人的数量不能超过牧师的数量。为了解决这个问题,我们可以使用深度优先搜索算法来找到最优解。 以下是牧师和野人过河问题的流程图: ``` (3,3,1) / \ / \ / \ (2,2,0) (3,1,0) / \ / \ / \ / \ (1,2,0) (2,1,0) (3,0,0) (2,1,1) / \ / \ / \ / \ / \ / \ / \ / \ (0,2,1)(1,1,1)(1,1,0)(2,0,0)(1,0,1) | | | | | X X X X X ``` 其中,每个节点表示当前状态下的船和河岸上的人数,例如(3,3,1)表示在河岸上有3个牧师,3个野人,船在左岸。 从根节点(3,3,1)开始,我们可以采用深度优先搜索算法进行搜索。具体步骤如下: 1. 判断当前状态是否为目标状态(0,0,0),如果是,则搜索结束。 2. 如果不是目标状态,则在当前状态的基础上进行扩展。扩展操作包括将两个人(牧师或者野人)从一个岸上移到另一个岸上。注意,在每次扩展前需要判断当前状态是否合法,即船上的人数不能超过2个,且野人的数量不能超过牧师的数量。 3. 对于每个扩展出来的状态,递归进行搜索。 在实现时,可以使用一个队列来保存当前状态以及它的父节点。在搜索到目标状态后,可以根据队列中保存的父节点信息构造出完整的路径。 如果你想了解如何使用 C++ 实现该算法,请告诉我,我可以为你提供代码实现和更详细的解释。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值