public GamePoint GetGuess(GuessViewModel guessViewModel) { Console.WriteLine($"GUESS #{guessViewModel.CurrentGuessNumber}"); var inputLine = Console.ReadLine(); var seperateStrings = inputLine.Split(',', 2, StringSplitOptions.TrimEntries); var guessPoint = new GamePoint { X = int.Parse(seperateStrings[0]), Y = int.Parse(seperateStrings[1]) }; return(guessPoint); }
public void PlayGame() { // BASIC program was generating a float between 0 and 1 // then multiplying by the size of the grid to to a number // between 1 and 10. C# allows you to do that directly. var hurklePoint = new GamePoint { X = _random.Next(0, gridSize), Y = _random.Next(0, gridSize) }; for (var K = 1; K <= guesses; K++) { var guessPoint = _view.GetGuess(new GuessViewModel { CurrentGuessNumber = K }); var direction = guessPoint.GetDirectionTo(hurklePoint); switch (direction) { case CardinalDirection.None: _view.ShowVictory(new VictoryViewModel { CurrentGuessNumber = K }); return; default: _view.ShowDirection(new FailedGuessViewModel { Direction = direction }); continue; } } _view.ShowLoss(new LossViewModel { MaxGuesses = guesses, HurkleLocation = hurklePoint }); }