public GameModel Get(int gameId) { LudoGame game = _games[gameId]; int numberOfPlayers = game.GetPlayers().Count(); var currentPlayer = game.GetCurrentPlayer(); return(new GameModel() { GameId = gameId, CurrentPlayerId = currentPlayer == null ? 0 : currentPlayer.PlayerId, NumberOfPlayers = numberOfPlayers, State = game.GetGameState().ToString() }); }
public void StartGame_TwoPlayers_GameStateIsStarted() { // Arrange var game = new LudoGame(new DieceMock()); game.AddPlayer("player1", PlayerColor.Blue); game.AddPlayer("player2", PlayerColor.Red); // Act bool result = game.StartGame(); // Assert Assert.True(result); Assert.Equal(GameState.Started, game.GetGameState()); }
public JsonResult Put(int gameId) { LudoGame game = _games.GetOrCreateGame(gameId); if (game.GetGameState() == GameState.Ended) { // Retunera spelaren vann return(new JsonResult( new { winner = game.GetWinner() })); } // kontrollera att spelet har startat första gången någon flyttar en pjäs, annars starta spelet först if (game.GetGameState() == GameState.NotStarted) { game.StartGame(); } // Hämta nuvarande spelare Player player = game.GetCurrentPlayer(); // Kasta tärningen int diece = game.RollDiece(); // hämta första pjäsen från spelaren som är på målsträckan Piece piece = player.Pieces.FirstOrDefault(m => m.State == PieceGameState.GoalPath); // om ingen pjäs är på målsträckan, ta en som är på spel planen istället if (piece == null) { piece = player.Pieces.FirstOrDefault(m => m.State == PieceGameState.InGame); } // om ingen pjäs är på spelplanen, ta en från boet if (piece == null) { piece = player.Pieces.FirstOrDefault(m => m.State == PieceGameState.HomeArea); } // vi har en pjäs som spelaren kan flytta if (piece != null) { game.MovePiece(player, piece.PieceId, diece); } // Avsluta spelarens tur, om hen slår sex, får de spela om if (diece != 6) { game.EndTurn(player); } // kontrollera om någon vunnit eller ej if (game.GetGameState() != GameState.Ended) { // Retunera spelaren som spelade, så man kan se pjäsen flyttat på sig return(new JsonResult( new { diece, piece, player })); } else { // Retunera spelaren vann return(new JsonResult( new { winner = game.GetWinner() })); } }