private static void Play(Game game) { var guessService = new GuessService(); GuessResult result = null; Console.WriteLine($"Gissa ett tal mellan {game.MinRandomNumber} och {game.MaxRandomNumber}"); while (game.GameState == GameState.OnGoing) { var guesses = new List <int>(); for (var i = 0; i < game.Players; i++) { Console.WriteLine($"Spelare {i + 1} gissar"); guesses.Add(ReadInteger(game.MinRandomNumber, game.MaxRandomNumber)); } result = guessService.Guess(GuessModel.Create(game, guesses.ToArray())); if (game.GameState == GameState.OnGoing) { Console.WriteLine($"Spelare {result.PlayerId} var närmast"); } } Console.WriteLine($"Spelare {result.PlayerId} vann och var närmast {game.CorrectNumber}"); }
public void Guess_ShouldReturnClosestGuest() { var rngServiceMock = new Mock <IRngService>(); rngServiceMock.Setup(x => x.Generate(It.IsAny <int>(), It.IsAny <int>())).Returns(10); IGameFactory gameFactory = new GameFactory(rngServiceMock.Object); var game = gameFactory.Create(null); IGuessService guessService = new GuessService(); var result = guessService.Guess(GuessModel.Create(game, 1, 9)); Assert.AreEqual(2, result.PlayerId); }
public void Guess_CorrectGuess_GameStateEqualsCompleted() { var rngServiceMock = new Mock <IRngService>(); rngServiceMock.Setup(x => x.Generate(It.IsAny <int>(), It.IsAny <int>())).Returns(10); IGameFactory gameFactory = new GameFactory(rngServiceMock.Object); var game = gameFactory.Create(null); IGuessService guessService = new GuessService(); guessService.Guess(GuessModel.Create(game, 1, 10)); Assert.AreEqual(GameState.Completed, game.GameState); }
public void Guess_TurnsLeftShouldCountDown() { var rngServiceMock = new Mock <IRngService>(); rngServiceMock.Setup(x => x.Generate(It.IsAny <int>(), It.IsAny <int>())).Returns(10); IGameFactory gameFactory = new GameFactory(rngServiceMock.Object); var game = gameFactory.Create(null); IGuessService guessService = new GuessService(); guessService.Guess(GuessModel.Create(game, 1, 9)); Assert.AreEqual(2, game.TurnsLeft); }
public void Guess_AllTurnsUsed_GameStateEqualsCompleted() { var rngServiceMock = new Mock <IRngService>(); rngServiceMock.Setup(x => x.Generate(It.IsAny <int>(), It.IsAny <int>())).Returns(10); IGameFactory gameFactory = new GameFactory(rngServiceMock.Object); var game = gameFactory.Create(null); IGuessService guessService = new GuessService(); var turns = game.TurnsLeft; for (int i = 0; i < turns; i++) { guessService.Guess(GuessModel.Create(game, 1, 9)); } Assert.AreEqual(GameState.Completed, game.GameState); }