public BattleshipPlayer GetOppositePlayer(BattleshipPlayer player)
 {
     if (PlayerOne != player)
     {
         return(PlayerOne);
     }
     else
     {
         return(PlayerTwo);
     }
 }
 public BattleshipPlayer GetCurrentPlayer(BattleshipPlayer player)
 {
     if (PlayerOne == player)
     {
         return(PlayerOne);
     }
     else
     {
         return(PlayerTwo);
     }
 }
        public BattleshipMoveStatus Move(BattleshipPlayer player, int x, int y)
        {
            var opponentBoard = GetCurrentPlayer(player).OpponentBoard;
            var status        = GetOppositePlayer(player).Board.Cannonry(opponentBoard, x, y);

            switch (status)
            {
            case BattleshipMoveStatus.ShipMiss:
                ChangePlayerTurn();
                return(status);

            case BattleshipMoveStatus.ShipDown:
            case BattleshipMoveStatus.GameOver:
                return(status);

            default:
                return(status);
            }
        }
 public bool IsPlayerMove(BattleshipPlayer player)
 {
     return(GetCurrentPlayer(player).Ready);
 }
 public Board GetOpponentBoard(BattleshipPlayer player)
 {
     return(GetCurrentPlayer(player).OpponentBoard);
 }
 public Board GetPlayerBoard(BattleshipPlayer player)
 {
     return(GetCurrentPlayer(player).Board);
 }
 public void SetPlayerReady(BattleshipPlayer player)
 {
     GetCurrentPlayer(player).SetToReady();
 }
 public BattleshipBoardStatus SetBoard(BattleshipPlayer player, int[][] board)
 {
     return(GetCurrentPlayer(player).Board.SetBoard(board));
 }
 public BattleshipSession(long id, Player playerOne, Player playerTwo)
 {
     Id        = id;
     PlayerOne = new BattleshipPlayer(playerOne.Principal);
     PlayerTwo = new BattleshipPlayer(playerTwo.Principal);
 }