public void ReturnCorrectMark(string expectedMark, List <Colour> code, List <Colour> guess) { var codeBreaker = new CodeChecker(); var actual = codeBreaker.CheckGuess(code, guess); Assert.AreEqual(expectedMark, actual); }
/// <summary> /// Charge en mémoire les modèles objet et génère les warnings. /// </summary> private void LoadObjectModel() { // Charge le parser. IModelParser modelParser = LoadModelParser(); // Parse le modèle. _modelList = modelParser.Parse(); // Charge les listes de références. ICollection <TableInit> staticTableInitList = LoadTableInitList(true); ICollection <TableInit> referenceTableInitList = LoadTableInitList(false); // Génère les warnings pour le modèle. List <NVortexMessage> messageList = new List <NVortexMessage>(modelParser.ErrorList); messageList.AddRange(CodeChecker.Check(_modelList, _domainList)); messageList.AddRange(StaticListChecker.Instance.Check(_modelList, staticTableInitList)); messageList.AddRange(ReferenceListChecker.Instance.Check(_modelList, referenceTableInitList)); if (GeneratorParameters.GenerateSql) { _schemaGenerator = LoadSchemaGenerator(); messageList.AddRange(_schemaGenerator.CheckAllIdentifiersNames(_modelList)); } NVortexGenerator.Generate(messageList, GeneratorParameters.VortexFile, GeneratorParameters.SourceRepository, "ClassGenerator"); if (!CanGenerate(messageList)) { Environment.Exit(-NbErrorMessage(messageList)); } }
void Awake() { displayedDialogue = new DialogueItem(); sentences = new Queue <DialogueItem>(); characterController = FindObjectOfType <PlayerController>(); codeChecker = FindObjectOfType <CodeChecker>(); }
public void It_Should_SetIsWinnerAndIsGameOver_ToTrue_When_GuessIsCorrect(List <Peg> guess, bool expectedIsWinner, bool expectedIsGameOver) { //arrange var codeGenerator = new CodeGenerator(new List <Peg> { Peg.Red, Peg.Blue, Peg.Green, Peg.Yellow }); var nonRandomizer = new NonRandomizer(); var code = new CodeChecker(codeGenerator, nonRandomizer); var config = new MastermindConfig { [DataConstants.CodeLength] = 4, [DataConstants.NumberOfColours] = 6, [DataConstants.NumberOfTurns] = 8 }; var game = new Game(config, code); game.StartNewGame(); //act var feedback = game.CheckGuess(guess); game.UpdateGame(guess, feedback); //assert Assert.Equal(expectedIsWinner, game.IsWinner); Assert.Equal(expectedIsGameOver, game.IsGameOver); }
/// <summary> /// Charge en mémoire les modèles objet et génère les warnings. /// </summary> private void LoadObjectModel() { // Charge le parser. IModelParser modelParser = LoadModelParser(); // Parse le modèle. _modelList = modelParser.Parse(); // Charge les listes de références. ICollection <TableInit> staticTableInitList = LoadTableInitListFromFile(_parameters.StaticListFactoryFileName); ICollection <TableInit> referenceTableInitList = LoadTableInitListFromFile(_parameters.ReferenceListFactoryFileName); // Génère les warnings pour le modèle. List <NVortexMessage> messageList = new List <NVortexMessage>(modelParser.ErrorList); messageList.AddRange(CodeChecker.Check(_modelList)); messageList.AddRange(StaticListChecker.Instance.Check(_modelList, staticTableInitList)); messageList.AddRange(ReferenceListChecker.Instance.Check(_modelList, referenceTableInitList)); messageList.AddRange(AbstractSchemaGenerator.CheckAllIdentifiersNames(_modelList)); NVortexGenerator.Generate(messageList, _parameters.VortexFile, "ClassGenerator"); if (!CanGenerate(messageList)) { Environment.Exit(-NbErrorMessage(messageList)); } }
public void It_Should_Return_WhiteForEveryCorrectColourAtIncorrectPosition_When_Given_ValidGuesses(List <Peg> guess, List <Feedback> expectedFeedback) { //arrange var codeGenerator = new CodeGenerator(new List <Peg> { Peg.Red, Peg.Blue, Peg.Green, Peg.Yellow }); var nonRandomizer = new NonRandomizer(); var code = new CodeChecker(codeGenerator, nonRandomizer); code.GenerateSecretCode(); //act var feedback = code.CheckGuess(guess); //assert Assert.Equal(expectedFeedback, feedback); }
internal static void Main() { log.Info("Запуск агента"); using (var checker = new CodeChecker()) { checker.Configure(); log.Info("Проверка разработки"); var context = checker.ContextManager.Context.Development; var documents = CodeCheckerCalculationProvider.GetDocuments(context); var report = checker.Check(documents).Result; log.Info("Генерация отчета"); report.Print(); } log.Info("Агент успешно завершил работу"); }
public void It_Should_Return_A_KnownSecretCode_When_A_StaticCodeGeneratorIsUsed() { //arrange var codeGenerator = new CodeGenerator(new List <Peg> { Peg.Red, Peg.Blue, Peg.Green, Peg.Yellow }); var nonRandomizer = new NonRandomizer(); var code = new CodeChecker(codeGenerator, nonRandomizer); //act code.GenerateSecretCode(); //assert var expectedSecretCode = new List <Peg> { Peg.Red, Peg.Blue, Peg.Green, Peg.Yellow }; Assert.True(code.SecretCode.SequenceEqual(expectedSecretCode)); }
public void It_Should_SetIsGameOver_ToTrue_When_MaxNumberOfGuessesAreReached(int numberOfTurns, bool expectedIsGameOver) { //arrange var codeGenerator = new CodeGenerator(new List <Peg> { Peg.Red, Peg.Blue, Peg.Green, Peg.Yellow }); var nonRandomizer = new NonRandomizer(); var code = new CodeChecker(codeGenerator, nonRandomizer); var config = new MastermindConfig { [DataConstants.CodeLength] = 4, [DataConstants.NumberOfColours] = 6, [DataConstants.NumberOfTurns] = 8 }; var game = new Game(config, code); game.StartNewGame(); for (var i = 0; i < numberOfTurns; i++) { var guess = new List <Peg> { Peg.Blue, Peg.Orange, Peg.Orange, Peg.Yellow }; var feedback = game.CheckGuess(guess); game.UpdateGame(guess, feedback); } //act var finalGuess = new List <Peg> { Peg.Orange, Peg.Orange, Peg.Orange, Peg.Orange }; var finalFeedback = game.CheckGuess(finalGuess); game.UpdateGame(finalGuess, finalFeedback); //assert Assert.Equal(expectedIsGameOver, game.IsGameOver); }
private static void PlayGame() { var code = new CodeGenerator(); var codeChecker = new CodeChecker(); var colourMapper = new ColourMapper(); var randomCode = code.Create(); var guess = ""; const string response = "The mark was: "; Console.WriteLine("Welcome to Code Breaker!"); while (guess != "stop") { Console.WriteLine("Please insert your guess (e.g \"r,g,y,c\"): "); guess = Console.ReadLine(); if (guess == "stop") { return; } try { var convertedGuess = colourMapper.Map(guess); var mark = codeChecker.CheckGuess(randomCode, convertedGuess); if (mark == "bbbb") { Console.WriteLine("You have won the game!"); Console.ReadKey(); return; } Console.WriteLine(response + mark + Environment.NewLine); } catch (Exception e) { Console.WriteLine(e.Message + Environment.NewLine); } } Console.ReadKey(); }
public void It_Should_Contain_AListOfTurns_When_AGuessIsChecked() { //arrange var codeGenerator = new CodeGenerator(new List <Peg> { Peg.Red, Peg.Blue, Peg.Green, Peg.Yellow }); var nonRandomizer = new NonRandomizer(); var code = new CodeChecker(codeGenerator, nonRandomizer); var config = new MastermindConfig { [DataConstants.CodeLength] = 4, [DataConstants.NumberOfColours] = 6, [DataConstants.NumberOfTurns] = 8 }; var game = new Game(config, code); game.StartNewGame(); //act var guess = new List <Peg> { Peg.Blue, Peg.Orange, Peg.Orange, Peg.Yellow }; var feedback = game.CheckGuess(guess); game.UpdateGame(guess, feedback); //assert var expectedTurn = new Turn( new List <Peg> { Peg.Blue, Peg.Orange, Peg.Orange, Peg.Yellow }, new List <Feedback> { Feedback.Black, Feedback.White }); var turn = game.Turns[0]; turn.Should().BeEquivalentTo(expectedTurn); }
public Game(MastermindConfig config, CodeChecker codeChecker) { _config = config; _codeChecker = codeChecker; RemainingTurns = config[DataConstants.NumberOfTurns]; }
public CodeZeilenTests() { codeText = new CodeChecker(); }
public void It_Should_SimulateGamePlay_When_Given_InvalidInput() { var config = ConfigurationLoader.LoadMastermindConfiguration(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ConfigFiles", "StandardConfig.json")); var staticCodeGenerator = new CodeGenerator(new List <Peg> { Peg.Blue, Peg.Green, Peg.Yellow, Peg.Green }); var feedbackRandomizer = new NonRandomizer(); var codeChecker = new CodeChecker(staticCodeGenerator, feedbackRandomizer); var game = new Game(config, codeChecker); var consoleDisplayStub = new ConsoleDisplayStub(); var mockCollector = new Mock <ICollector>(); mockCollector.SetupSequence(x => x.Collect()) .Returns("Blue, green, reD, rainbow") .Returns("Blue, red, red, red, red") .Returns("Blue, blue") .Returns("") .Returns("hello") .Returns("blue, green, pink, red") .Returns("grey") .Returns("BLUE, green, YeLLoW, Green"); var gameEngine = new GameEngine( consoleDisplayStub, mockCollector.Object, new ConsoleInputProcessor(config), game); //Act gameEngine.PlayGame(); //Assert var expectedMessages = new List <string> { ClientConstants.Welcome, ClientConstants.Border, ClientConstants.SecretCode, "Blue, Green, Yellow, Green", ClientConstants.Border, ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, "Error: rainbow is an invalid colour!", ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, $"Error: you must pass in {config[DataConstants.CodeLength]} colours!", ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, $"Error: you must pass in {config[DataConstants.CodeLength]} colours!", ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, $"Error: you must pass in {config[DataConstants.CodeLength]} colours!", ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, "Error: hello is an invalid colour!", ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, "Error: pink is an invalid colour!", ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, "Error: grey is an invalid colour!", ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, ClientConstants.Feedback, "Black, Black, Black, Black", ClientConstants.Border, ClientConstants.Winner }; Assert.Equal(expectedMessages, consoleDisplayStub.Messages); }
public void It_Should_SimulateDemoGame_When_Given_ValidInput() { var config = ConfigurationLoader.LoadMastermindConfiguration(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ConfigFiles", "StandardConfig.json")); var staticCodeGenerate = new CodeGenerator(new List <Peg> { Peg.Blue, Peg.Green, Peg.Orange, Peg.Red }); var feedbackRandomizer = new NonRandomizer(); var codeChecker = new CodeChecker(staticCodeGenerate, feedbackRandomizer); var game = new Game(config, codeChecker); var inputHappy = new List <string> { "blue, blue, green, green", "Red, blue, red, RED", "Blue, yellow, Green, red", "Blue, Green, PURPLE, Red", "blue, green, orange, red" }; var consoleDisplayStub = new ConsoleDisplayStub(); var gameEngine = new GameEngine(consoleDisplayStub, new ConsoleDemoInputCollector(inputHappy, consoleDisplayStub), new ConsoleInputProcessor(config), game); //Act gameEngine.PlayGame(); //Assert var expectedMessages = new List <string> { ClientConstants.Welcome, ClientConstants.Border, ClientConstants.SecretCode, "Blue, Green, Orange, Red", ClientConstants.Border, ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, inputHappy[0], ClientConstants.Feedback, "Black, White", ClientConstants.Border, ClientConstants.GuessesLeft + 7 + ClientConstants.PromptGuess, inputHappy[1], ClientConstants.Feedback, "Black, White", ClientConstants.Border, ClientConstants.GuessesLeft + 6 + ClientConstants.PromptGuess, inputHappy[2], ClientConstants.Feedback, "Black, Black, White", ClientConstants.Border, ClientConstants.GuessesLeft + 5 + ClientConstants.PromptGuess, inputHappy[3], ClientConstants.Feedback, "Black, Black, Black", ClientConstants.Border, ClientConstants.GuessesLeft + 4 + ClientConstants.PromptGuess, inputHappy[4], ClientConstants.Feedback, "Black, Black, Black, Black", ClientConstants.Border, ClientConstants.Winner }; Assert.Equal(expectedMessages, consoleDisplayStub.Messages); }
public void It_Should_SimulateGamePlay_When_Given_ValidInput() { var config = ConfigurationLoader.LoadMastermindConfiguration(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ConfigFiles", "StandardConfig.json")); var staticCodeGenerator = new CodeGenerator(new List <Peg> { Peg.Blue, Peg.Green, Peg.Yellow, Peg.Green }); var feedbackRandomizer = new NonRandomizer(); var codeChecker = new CodeChecker(staticCodeGenerator, feedbackRandomizer); var game = new Game(config, codeChecker); var consoleDisplayStub = new ConsoleDisplayStub(); var mockCollector = new Mock <ICollector>(); mockCollector.SetupSequence(x => x.Collect()) .Returns("blue, red, green, red") .Returns("green, yellow, green, blue") .Returns("Red, RED, red. Red") .Returns("Blue, Green, Yellow, Green"); var gameEngine = new GameEngine( consoleDisplayStub, mockCollector.Object, new ConsoleInputProcessor(config), game); //Act gameEngine.PlayGame(); //Assert var expectedMessages = new List <string> { ClientConstants.Welcome, ClientConstants.Border, ClientConstants.SecretCode, "Blue, Green, Yellow, Green", ClientConstants.Border, ClientConstants.GuessesLeft + 8 + ClientConstants.PromptGuess, ClientConstants.Feedback, "Black, White", ClientConstants.Border, ClientConstants.GuessesLeft + 7 + ClientConstants.PromptGuess, ClientConstants.Feedback, "White, White, White, White", ClientConstants.Border, ClientConstants.GuessesLeft + 6 + ClientConstants.PromptGuess, ClientConstants.Feedback, "", ClientConstants.Border, ClientConstants.GuessesLeft + 5 + ClientConstants.PromptGuess, ClientConstants.Feedback, "Black, Black, Black, Black", ClientConstants.Border, ClientConstants.Winner }; Assert.Equal(expectedMessages, consoleDisplayStub.Messages); }