示例#1
0
        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);
        }
示例#2
0
        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
            });
        }