Exemple #1
0
 private void SaveGame(BattleshipsServiceLibrary.Game game)
 {
     using (BattleshipsDbEntities bdc = new BattleshipsDbEntities())
     {
         BattleshipsDatabase.Game g = new BattleshipsDatabase.Game();
         g.End    = DateTime.Now;
         g.Winner = game.Winner.PlayerId;
         g.Loser  = game.Opponent(g.Winner).PlayerId;
         g.Start  = game.Start;
         foreach (Move m in game.Moves)
         {
             bdc.Turns.Add(new Turn()
             {
                 Game   = g.GameId,
                 Player = m.Player,
                 Time   = m.Time,
                 Hit    = m.Result == BlockState.HIT,
                 X      = m.AtX,
                 Y      = m.AtY
             });
         }
         bdc.Games.Add(g);
         bdc.SaveChanges();
     }
 }
Exemple #2
0
        public void LeaveGame(int gameId, long playerId)
        {
            Game g = games[gameId];

            //Player 2 was not connected
            if (g.Player1.PlayerId == playerId && g.Player2 == null)
            {
                games.Remove(gameId);
            }
            //Player 1 disconnected
            if (g.Player1.PlayerId == playerId)
            {
                g.Player1Left = true;
            }
            else if (g.Player2.PlayerId == playerId)
            {
                g.Player2Left = true;
            }
            else
            {
                throw new Exception();
            }
            if (g.Winner == null)
            {
                g.Winner = g.Opponent(playerId);
                g.Turn   = null;
            }
            if (g.Player1Left && g.Player2Left)
            {
                games.Remove(gameId);
                if (GameEnded != null)
                {
                    GameEnded(g);
                }
            }
        }
Exemple #3
0
        public string GetGameState(int gameId, long player)
        {
            if (!games.ContainsKey(gameId))
            {
                return("Game not initialised");
            }

            Game game = games[gameId];

            if (game.Opponent(player) == null)
            {
                return(game.IsPrivate ?
                       $"Prepare your battlefield while waiting for friend. Game Id: {game.GameId}" :
                       "Searching for oponent...");
            }
            if (game.Winner?.PlayerId == player)
            {
                return($"!! VICTORY !!");
            }
            if (game.Winner?.PlayerId == game.Opponent(player).PlayerId)
            {
                return($".. DEFEAT ..");
            }
            if (game.Opponent(player) != null && !game.OpponentReady(player))
            {
                return($"Player {game.Opponent(player).Name} placing his ships...");
            }
            if (game.Turn?.PlayerId == player)
            {
                return($"Your turn...");
            }
            if (game.Turn?.PlayerId == game.Opponent(player).PlayerId)
            {
                return($"Opponents turn...");
            }
            if (game.Opponent(player) != null && game.OpponentReady(player))
            {
                return($"Opponent ready, place your ships...");
            }

            throw new Exception();
        }