/// <summary> /// Запуск игры /// </summary> public JsonResult Start(string settings) { GameState gameState = new GameState(); var gameSettings = JsonHelper.DeserialiazeWithType <GameSettings>(settings); IPlayer[] gamePlayers = new IPlayer[4]; int index = 0; foreach (var pl in gameSettings.players) { switch (pl) { case "robot": gamePlayers[index++] = new SmartPlayer(); break; case "human": gamePlayers[index++] = new WebHumanPlayer(); break; default: gamePlayers[index++] = new SmartPlayer2(); break; } } while (index < 4) { gamePlayers[index++] = new SmartPlayer(); } if (!gameSettings.mapId.HasValue) { gameSettings.mapId = new Random().Next(); } gameState.board = new Board(gamePlayers, gameSettings.mapId.Value); gameState.game = new Game(gamePlayers, gameState.board); Session["test"] = gameState; var service = new DrawService(); var map = service.Map(gameState.board); return(Json(new { gamename = "test", map = map, mapId = gameSettings.mapId.Value, stat = service.GetStatistics(gameState.game) })); }