Isolate prompting from game

Move the user input out of the game logic.
This commit is contained in:
epvanhouten
2021-02-27 20:08:03 -06:00
parent c206605da5
commit 74eaccabc1

View File

@@ -36,14 +36,8 @@ namespace hurkle
*/
for(var K=1;K<=guesses;K++)
{
Console.WriteLine($"GUESS #{K}");
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])
};
var guessPoint = GetGuess(new GuessViewModel{CurrentGuessNumber = K});
if(guessPoint.GetDirectionTo(hurklePoint) == CardinalDirection.None)
{
/*
@@ -70,6 +64,24 @@ namespace hurkle
Console.WriteLine($"THE HURKLE IS AT {hurklePoint.X},{hurklePoint.Y}");
}
private class GuessViewModel
{
public int CurrentGuessNumber {get;init;}
}
private static GamePoint GetGuess(GuessViewModel model)
{
Console.WriteLine($"GUESS #{model.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;
}
private static void PrintInfo(GamePoint guess, GamePoint target)
{
Console.Write("GO ");