예제 #1
0
 private static void ObserveWorld(WorldPrinter printer, World world, IWorldObject objectOfInterest)
 {
     //printer.Print(world, objectOfInterest);
     Console.WriteLine($"Wet tiles: {world.NumberOfWetTiles}");
     //Console.ReadKey();
     //Task.Delay(10).Wait();
 }
예제 #2
0
        static void Main(string[] args)
        {
            var factory = new WorldFactory();
            var world   = factory.GetWorld();
            var printer = new WorldPrinter(false, 10);

            printer.Print(world);

            while (world.MakeStep(o => ObserveWorld(printer, world, o)))
            {
                ;
            }

            printer.Print(world);
            Console.WriteLine($"Wet tiles: {world.NumberOfWetTiles}");
        }
예제 #3
0
        static void Main(string[] args)
        {
            var world        = GetInitialState();
            var worldPrinter = new WorldPrinter();

            for (int tick = 0; world.Carts.Count > 1; tick++)
            {
                world.MakeStep();
                worldPrinter.Print(world, world.Carts[0]);
                Console.ReadKey();
            }

            var lastCart = world.Carts[0];

            Console.WriteLine();
            Console.WriteLine($"Last cart at position ({lastCart.Position.X},{lastCart.Position.Y})");
            Console.ReadKey();
        }
예제 #4
0
        static void Main(string[] args)
        {
            var factory = new WorldFactory();
            var world   = factory.GetInitialState();
            var printer = new WorldPrinter();

            int numOfFullRounds = -1;

            do
            {
                numOfFullRounds++;
                printer.Print(world);
                Console.WriteLine($"After round {numOfFullRounds}");
                //Console.ReadKey();
            }while (world.MakeRound());

            var sumOfHitpoints = world.Fighters.Sum(w => w.HP);

            Console.WriteLine();
            Console.WriteLine($"Done. Number of full rounds: {numOfFullRounds} Sum of hitpoints remainging: {sumOfHitpoints}");
            Console.Write($"Part 1: {numOfFullRounds * sumOfHitpoints}");
            Console.ReadKey();
        }