コード例 #1
0
ファイル: RobotView.cs プロジェクト: DavidBasarab/SharpBots
 internal RobotView(RobotRunner robot, RobotColorImages images, int index)
 {
     _robot = robot;
     _images = images;
     _index = index;
     RobotName = robot.Name;
     BodyImage = images.Bodies[0];
     RadarImage = images.Radars[0];
     TurretImage = images.Turrets[0];
 }
コード例 #2
0
ファイル: Bullet.cs プロジェクト: corynabours/SharpBots
 public Bullet(Battlefield battlefield, double x, double y, double heading, int speed, decimal strength, RobotRunner robotRunner)
 {
     _battlefield = battlefield;
     _x = x;
     _y = y;
     _heading = heading;
     _speed = speed;
     _strength = strength;
     _origin = robotRunner;
     _dead = false;
 }
コード例 #3
0
ファイル: BulletTests.cs プロジェクト: corynabours/SharpBots
 public void ShouldDieWhenItHitsARobot()
 {
     var customRobot = new TestRobot();
     var robot = new RobotRunner(customRobot, _battlefield, 1);
     var firingRobot = new RobotRunner(customRobot, _battlefield, 1);
     _battlefield.Add(robot);
     var bullet = new Bullet(_battlefield, robot.X + 30, robot.Y, 180, 30, 3.0m, firingRobot);
     bullet.Tick();
     Assert.That(bullet.Dead, Is.True);
     Assert.That(_battlefield.NewExplosions.Count,Is.EqualTo(1));
     Assert.That(robot.Energy, Is.EqualTo(97.0m));
     Assert.That(firingRobot.DamageGiven, Is.EqualTo(3.0m));
 }
コード例 #4
0
ファイル: Battlefield.cs プロジェクト: DavidBasarab/SharpBots
 public void Add(RobotRunner robot)
 {
     _robots.Add(robot);
 }
コード例 #5
0
 public void ShouldBeAbleToAddARobot()
 {
     var robot = new RobotRunner(null, _battlefield, 1);
     _battlefield.Add(robot);
     Assert.That(_battlefield.Robots.Count, Is.EqualTo(1));
 }
コード例 #6
0
ファイル: RunOptions.cs プロジェクト: DavidBasarab/SharpBots
        public RunOptions(string[] args)
        {
            // look for resolution arg
            X = 800;
            Y = 800;
            var arguments = args.ToList();

            if (arguments.Count() > 2)
            {
                if (IsNumeric(arguments[0]) && IsNumeric(arguments[1]))
                {
                    X = Convert.ToInt32(args[0]);
                    Y = Convert.ToInt32(args[1]);
                    arguments.RemoveAt(0);
                    arguments.RemoveAt(0);
                }
            }

            var seed = DateTime.Now.Ticks;
            var seedArgument = SearchForArgumentStartingWith("#", arguments);
            if (!string.IsNullOrEmpty(seedArgument))
                seed = Convert.ToInt32(seedArgument);

            var timeout = 50000;
            var timeoutArgument = SearchForArgumentStartingWith("-timeout=", arguments);
            if (!string.IsNullOrEmpty(timeoutArgument))
                timeout = Convert.ToInt32(timeoutArgument);

            ShowUi = true;
            if (ArgumentExists("-nogui", arguments))
                ShowUi = false;

            ShowRadar = false;
            /*
            ARGV.grep( /^show_radar/ )do |item|
              show_radar = true
              ARGV.delete(item)
            end*/
            var teams = 8;
            var teamsArgument = SearchForArgumentStartingWith("-teams=", arguments);
            if (!string.IsNullOrEmpty(teamsArgument))
                teams = Convert.ToInt32(teamsArgument);
            if (teams < 0 || teams > 8) teams = 8;

            if (arguments.Count == 0 || arguments.Count > 8)
            {
                Error = true;
                return;
            }

            Battlefield = new Battlefield(X * 2, Y * 2, timeout, seed);

            var c = 0;
            var teamDivider = Math.Ceiling(Convert.ToDouble(arguments.Count / teams));
            Error = false;
            foreach (var argument in arguments)
            {
                Robot robotShell = null;
                try
                {
                    var o = Activator.CreateInstance(argument, argument + "." + argument);
                    robotShell = (Robot)o.Unwrap();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error loading robot: " + argument);
                    Console.WriteLine(ex.ToString());
                    Error = true;
                }
                var team = (int)(c / teamDivider);
                c += 1;
                var robot = new RobotRunner(robotShell, Battlefield, team);
                Battlefield.Add(robot);
            }
        }