示例#1
0
        static Shoot()
        {
            ShootAngles = new Angle[51, 600];
            for (var p = 5f; p < 10.01f; p += 0.1f)
            {
                for (var d = 200; d < 800; d++)
                {
                    var d2    = d * d;
                    var power = new Power(p);
                    var speed = power.Speed;
                    for (var t = 1; t < 1024; t++)
                    {
                        var ball   = BallPath.GetDistance(speed, t);
                        var player = PlayerPath.GetDistance(3, t, 40);

                        if (ball.Squared + player.Squared > d2)
                        {
                            var angle = Angle.Atan((double)player / (double)ball);
                            var spe   = SpeedToKey(speed);
                            var dis   = DistanceToKey(d);
                            ShootAngles[spe, dis] = angle;
                            break;
                        }
                    }
                }
            }
        }
        public void Passing()
        {
            var angles = new Angle[51, 600];

            var sw = Stopwatch.StartNew();

            for (var p = 5f; p <= 10; p += 0.1f)
            {
                for (var d = 200; d < 800; d++)
                {
                    var d2    = d * d;
                    var power = new Power(p);
                    var speed = power.Speed;
                    for (var t = 1; t < 1024; t++)
                    {
                        if (p > 9.8f)
                        {
                        }
                        var ball   = BallPath.GetDistance(speed, t);
                        var player = PlayerPath.GetDistance(3, t, 40);

                        if (ball.Squared + player.Squared > d2)
                        {
                            var angle = Angle.Atan((double)player / (double)ball);
                            break;
                        }
                    }
                }
            }
            Console.WriteLine(sw.Elapsed.TotalMilliseconds);
        }
示例#3
0
        public void GetDistance_MaxSpeed1000Turns_3000()
        {
            var act = PlayerPath.GetDistance(3, 1000, 0);
            var exp = new Distance(3000);

            Assert.AreEqual(exp, act);
        }