Beispiel #1
0
        public HttpResponseMessage JoinGame(string gameName, string userName)
        {
            User u = new User(userName);

            MasterMindGameHandler.CreateNewUserIfNotExists(u);

            MasterMindGameHandler.JoinGame(gameName, u);

            MasterMindGameHandler.StartGameIfTheGameIsFull(gameName);

            GameSummaryModel result = new GameSummaryModel(MasterMindGameHandler.GamePool.Games.First(g => g.GameName.Equals(gameName)));

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Beispiel #2
0
        private static void UpdateData(string message)
        {
            var elements = message.Split(' ');

            switch (elements[0])
            {
            case "0":
                if (elements.Length < 5)
                {
                    break;
                }
                var newGame = new GameSummaryModel
                {
                    GameId   = elements[1],
                    GameType = int.Parse(elements[2]),
                    BotId    = elements[3],
                    Score    = int.Parse(elements[4])
                };
                Games.Add(newGame);
                break;

            case "1":
                if (elements.Length < 3)
                {
                    break;
                }
                var gameToRemove = Games.FirstOrDefault(x => x.GameId == elements[1]);
                if (gameToRemove != null)
                {
                    Games.Remove(gameToRemove);
                }
                break;

            case "2":
                for (int i = 1; (i + 3) < elements.Length; i += 4)
                {
                    var newGamel = new GameSummaryModel
                    {
                        GameId   = elements[i],
                        GameType = int.Parse(elements[i + 1]),
                        BotId    = elements[i + 2],
                        Score    = int.Parse(elements[i + 3])
                    };
                    Games.Add(newGamel);
                }
                break;

            case "3":
                if (elements.Length < 5)
                {
                    break;
                }
                var game = Games.FirstOrDefault(x => x.GameId == elements[1]);
                if (game != null)
                {
                    Games.Remove(game);
                    game.GameId   = elements[2];
                    game.GameType = int.Parse(elements[3]);
                    game.Score    = int.Parse(elements[4]);
                    Games.Add(game);
                }
                break;

            case "4":
                for (var i = 1; i + 1 < elements.Length; i += 2)
                {
                    var newgame = Games.FirstOrDefault(x => x.GameId == elements[i]);
                    if (newgame != null)
                    {
                        newgame.Score = int.Parse(elements[i + 1]);
                    }
                }
                break;

            default:
                Console.WriteLine("Received OP code " + elements[0]);
                break;
            }
            var fg = Games.FirstOrDefault(x => x.Score == Games.Max(y => y.Score));

            if (fg != null)
            {
                FeaturedGame = fg.GameId;
            }
            else
            {
                FeaturedGame = null;
            }
        }