C语言bfs算法自动走贪吃蛇,智能寻路贪吃蛇系列之 初级BFS寻路算法

但是我们要做的是会自动寻路的贪吃蛇,所以本次就实现一个简单的"智能贪吃蛇"

要实现一定的智能,肯定就要用到相应的寻路算法.我采用的是最简单的 宽度优先搜索的方式 (BFS算法)

所以在具体的实现游戏之前,我们先来看一下BFS算法.

该算法在中有详细解说,并给出了可行的伪代码,本系列的博文的重点不在于此,所以只是简单一说,然后给出代码.

下面就给出一个例子来说明该算法的寻路过程

(说明:我们将路径抽象化为一个二维数组,在二维数组中,我们用0表示未探索过的通路,用a表示探索过的通路,用1表示不通)

具体到例子,比如说下面一个地图

0 0 1 1

1 0 0 0

0 0 0 1

1 1 0 0

假设起始点为(0,0),终止点为(3,3),即从左下角到右下角..

我们通过观察法得,最短的路径为:

(0,0)->(0,1)->(1,1)->(2,1)->(2,2)->(3,2)->(3,3)

下面我们就通过

Bfs

将该路径求出来

,Bfs

算法寻路过程如下所示(标蓝的字母是当前步骤搜索的节点):

<0----->

a

0 1 1

1 0 0 0

0 0 0 1

1 1 0 0

<1----->

a

a

1 1

1 0 0 0

0 0 0 1

1 1 0 0

<2----->

a a 1 1

1

a

0 0

0 0 0 1

1 1 0 0

<3----->

a a 1 1

1 a

a

0

0

a

0 1

1 1 0 0

<4----->

a a 1 1

1 a a a

a

a a

1

1 1 0 0

<5----->

a a 1 1

1 a a a

a a a 1

1 1 a

0

<6----->

a a 1 1

1 a a a

a a a 1

1 1 a a

这样,经过7步,我们就能从起点搜索到终点了.

这样只是找到了终点,那么最短路径是怎样求出来的呢?

下面我们就通过代码来逐步实现一个Bfs寻路算法,并把该算法应用到可爱的贪吃蛇中

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值