朋友参加个面试,面试官问的问题:
就是战旗游戏能走多远的问题,有初始的行动力,不同地形会消耗不同的行动力,然后都能走到那些位置~
刚听到问题的时候,感觉应该是A*的思路来解答,结果是想复杂了,实际比A*还要简单~
做个Demo试试吧~~~~
思路就是从中心点,一圈一圈向外遍历,一直遍历到行动力没了为止。
我这里是用递归做的,核心代码贴在下面。
//初始点
void StartAt(int x, int y, int rest)
{
if (Nodes.Count > y)
{
if (Nodes[y].Count > x)
{
var n = Nodes[y][x];
n.SetColor(Color.red);
n.rest = rest;
}
}
l.Clear();
l.Add(Nodes[y][x]);
GoNextStep();
}
List<Node> tmp = new List<Node>();
//向外遍历
void GoNextStep()
{
tmp.Clear();
foreach (var item in l)
{
int xx = 0;
int yy = 0;
Debug.Log("-------------------");
xx = item.