战旗游戏,能走多远的算法(面试题)

朋友参加个面试,面试官问的问题:

就是战旗游戏能走多远的问题,有初始的行动力,不同地形会消耗不同的行动力,然后都能走到那些位置~

 

刚听到问题的时候,感觉应该是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.x - 1;
            yy = item.y;
            CheckNode(xx, yy, item.rest);

            xx = item.x 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值