static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("game-settings.json", optional: false, reloadOnChange: true) .AddJsonFile("moves.json", optional: false, reloadOnChange: true); var configuration = builder.Build(); var gameSettings = configuration.Get <GameSettings>(); var moves = configuration.GetSection("sequences").GetChildren().Select(sequence => sequence.Value).ToArray(); var turtle = new Turtle(gameSettings); for (int i = 0; i < moves.Length; i++) { var sequenceNumber = i; var move = moves[i]; if (move.Equals("rotate", StringComparison.InvariantCultureIgnoreCase)) { turtle.Rotate(); continue; } turtle.Move(); CheckTurtleStatus(sequenceNumber, gameSettings.Board, turtle.Coordinate) } Console.WriteLine("Press any key to exit"); Console.ReadLine(); }
public static void Main(string[] args) { var gs = args[0]; var ms = args[1]; var gameSettings = ReadFromJson <GameSettings>($"{gs}.json"); var moves = ReadFromJson <IList <TurtleAction[]> >($"{ms}.json"); var tg = GetTileGenerator(gameSettings); var mf = GetMindField(gameSettings, tg); foreach (var listOfMoves in moves) { var actions = 0; var t = new Turtle(mf, gameSettings.StartingDirection); mf.SetStartPosition(gameSettings.Start); foreach (var move in listOfMoves) { actions++; if (move == TurtleAction.Move) { t.Move(); } else { t.Rotate(); } if (t.CurentStatus == TurtleStatus.MineHit) { break; } } Console.WriteLine($"Final result: {t.CurentStatus} - Actions: {actions}"); } }