战棋类游戏移动范围的算法

来源:百度知道 编辑:UC知道 时间:2024/05/13 06:50:39
就像英雄无敌5那样 可以根据障碍物的位置算出行动的范围
比如:
●为当前位置,※为障碍物,□为可移动到的地点
假设移动的路程为4格,只能上下左右移动
那么没有障碍物时移动范围是:

□□□
□□□□□
□□□□□□□
□□□□●□□□□
□□□□□□□
□□□□□
□□□

当有障碍物时移动范围变成这样:

□ □□□
□□※※□□□
□□□□●□□□□
□□□□□□□
□□□□□
□□□


若给出所有障碍物的坐标(比如结构体数组)有没有一种算法可以表示出可移动范围内所有格子的坐标(将所有坐标存入一个数组或别的什么)??
我想我的问题说的很清楚了。
如果各位手头没有这样的算法也可以给我提供一些这方面的参考资料
让我知道我应该往哪个方向去思考
问题解决了给追加分数
图画错了 貌似不能用空格

你看一下下面两篇,战棋是穷举法寻路的较多
http://dev.gameres.com/Program/Abstract/SLGPath.htm

http://dev.gameres.com/Program/Abstract/SLGMove.htm

用1,2,3分别表示●为当前位置,※为障碍物,□为可移动到的地点
0为不是地图中的可见位置
整理数组,9*8的数组,障碍物的坐标给出后,循环检查每个数是3的则是可移动地点!~
如果是寻路的话,有寻路算法!

如果是平面的,用二维数组就够了

算法可以自己写啊