public void WillDestroyTheShip()
        {
            var scenario = new BattleScenario
            {
                Plain = new Plain {
                    Xsize = 10, Ysize = 10
                },
                Battleships = new List <Battleships.StateManager.Models.Battleship>
                {
                    new Battleships.StateManager.Models.Battleship {
                        Start = new Position(5, 0), End = new Position(5, 9)
                    }
                },
                ShotPoints = new List <Position>
                {
                    new Position(5, 0),
                    new Position(5, 1),
                    new Position(5, 2),
                    new Position(5, 3),
                    new Position(5, 4),
                    new Position(5, 5),
                    new Position(5, 6),
                    new Position(5, 7),
                    new Position(5, 8),
                    new Position(5, 9),
                }
            };

            var gameOrchestrator = new BattleOrchestrator(new BattleService());
            var result           = gameOrchestrator.Execute(scenario);

            Assert.False(result.IsError);
            Assert.True(result.HasLost);
            Assert.Equal(AttackResult.Hit, result.AttackResults.First());
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            var scenario = new BattleScenario
            {
                Plain = new Plain {
                    Xsize = 10, Ysize = 10
                },
                Battleships = new List <Battleships.StateManager.Models.Battleship>
                {
                    new Battleships.StateManager.Models.Battleship {
                        Start = new Position(5, 0), End = new Position(5, 9)
                    }
                },
                ShotPoints = new List <Position>
                {
                    new Position(5, 0),
                    new Position(5, 1),
                    new Position(5, 2),
                    new Position(5, 3),
                    new Position(5, 4),
                    new Position(5, 5),
                    new Position(5, 6),
                    new Position(5, 7),
                    new Position(5, 8),
                    new Position(5, 9),
                }
            };

            var gameOrchestrator = new BattleOrchestrator(new BattleService());
            var result           = gameOrchestrator.Execute(scenario);

            System.Console.WriteLine($"Enemy has {(result.HasLost ? "Lost" : "Not Lost")}");

            System.Console.ReadKey();
        }
 public IActionResult Waiting()
 {
     if (BattleOrchestrator.GetBattle(HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault()) != null)
     {
         return(RedirectToAction("Battle"));
     }
     return(View());
 }
        // GET: /BattleController/
        public IActionResult Index()
        {
            if (!_loginManager.IsLoggedIn(HttpContext?.Session))
            {
                return(RedirectToAction("Login", "Player"));
            }

            if (BattleOrchestrator.GetBattle(HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault()) != null)
            {
                return(RedirectToAction("Battle"));
            }
            if (BattleOrchestrator.IsNotFighting(HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault()))
            {
                return(View());
            }
            return(RedirectToAction("Waiting"));
        }
        public IActionResult FindBattle()
        {
            if (!_loginManager.IsLoggedIn(HttpContext?.Session))
            {
                return(RedirectToAction("Login", "Player"));
            }
            var players = _repo.Read();

            foreach (var player in players) //add characters to the players
            {
                player.Character =
                    _charRepo.Read()
                    .Where(
                        c =>
                        c.OwningPlayerid.GetValueOrDefault() != null &&
                        c.OwningPlayerid.GetValueOrDefault() == player.Id).ToList();
            }
            BattleOrchestrator.FindBattle(players,
                                          HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault());
            return(RedirectToAction("Waiting"));
        }
 public IActionResult Fight(int CharacterId)
 {
     BattleOrchestrator.Fight(CharacterId, HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault());
     return(RedirectToAction("Battle"));
 }