private GameDto makeTurn(TurnDto turnDto, Game game) { var gameState = getGameState(game); if (gameState[turnDto.X, turnDto.Y] != 0) { throw new CustomValidationException("Requested cell already contains value", string.Empty); } game.Game2Players.Add(new Game2Player { Date = DateTime.Now, PlayerId = turnDto.PlayerId, X = turnDto.X, Y = turnDto.Y, GameId = turnDto.GameId ?? 0 }); if (game.Id > 0) { game.IsFinished = _gameResultChecker.DoesGameFinished(getGameState(game)); _database.Games.Update(game); } else { _database.Games.Create(game); } _database.Save(); return(convertToDto(game)); }
public void TestDoGameNotFinished() { var checker = new GameResultChecker(); var field = new sbyte[, ] { { 1, 0, 1 }, { 0, 0, -1 }, { 1, 0, -1 } }; var result = checker.DoesGameFinished(field); Assert.IsFalse(result); }
public void TestDoGameFinishedVerticalFinished() { var checker = new GameResultChecker(); var field = new sbyte[, ] { { 1, -1, 1 }, { 1, -1, -1 }, { 1, -1, -1 } }; var result = checker.DoesGameFinished(field); Assert.IsTrue(result); }