コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: baliza/TurtleChallenge
        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}");
            }
        }