コード例 #1
0
    [Test] public void TestMove5x3AndShoot()
    {
        var x =
            new SentinelModel((Transform)null,
                              new SentinelModel.Target(5, 3),
                              ground);

        o(x.target != null);
        var p = new Solver <SentinelModel>();

        p.maxIter  = 10000;
        p.maxNodes = 100000;
        var g = Goal();
        var s = p.Next(x, in g);

        print($"Iter: {p.iteration}, max fringe: {p.peak}");
        var path = s.Path();

        o(path.Length, 6);
        print(p.status.ToString());
        foreach (var n in path)
        {
            print(n.ToString());
        }
    }
コード例 #2
0
    [Test] public void TestMoveAndShoot()
    {
        var x =
            new SentinelModel((Transform)null,
                              new SentinelModel.Target(4, 0),
                              ground);

        o(x.target != null);
        var p    = new Solver <SentinelModel>();
        var g    = Goal();
        var s    = p.Next(x, in g);
        var path = s.Path();

        o(path.Length, 3);
        foreach (var n in path)
        {
            print(n.ToString());
        }
    }
コード例 #3
0
    [Test] public void Test_x_100()
    {
        var z = 0;

        for (int i = 0; i < 100; i++)
        {
            // -4, 2  Puts the sentinel top-right
            // -3, -2 Is on left side, faster
            var x =
                new SentinelModel((Transform)null, // -4, 2
                                  new SentinelModel.Target(-4, 2),
                                  ground);
            o(x.target != null);
            var p = new Solver <SentinelModel>();
            p.maxIter   = 2000;
            p.maxNodes  = 512;
            p.tolerance = 1.75f;
            var g = HGoal();
            var s = p.Next(x, in g);
            z += p.iteration;
            o(s.Path().Length, 33);
        }
        print($"Iter x: {z/10}"); // 1166 x 790
    }