Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var grid = new LifeGrid(75, 25);

            int iterations = 10000;

            Console.WriteLine("Number of iterations: {0}", iterations);

            grid.Randomize();
            var stopwatch = Stopwatch.StartNew();

            for (int i = 0; i < iterations; i++)
            {
                grid.UpdateState();
            }
            Console.WriteLine("Nested for: {0}ms", stopwatch.ElapsedMilliseconds);

            grid.Randomize();
            stopwatch = Stopwatch.StartNew();
            for (int i = 0; i < iterations; i++)
            {
                grid.UpdateState2();
            }
            Console.WriteLine("Nested Parallel For: {0}ms", stopwatch.ElapsedMilliseconds);

            grid.Randomize();
            stopwatch = Stopwatch.StartNew();
            for (int i = 0; i < iterations; i++)
            {
                grid.UpdateState3();
            }
            Console.WriteLine("Single Level Parallel For: {0}ms", stopwatch.ElapsedMilliseconds);

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        public static async Task RunAutoAdvance(LifeGrid grid)
        {
            while (true)
            {
                await Task.Delay(100);

                await grid.UpdateState();

                ShowGrid(grid.CurrentState);
            }
        }
Ejemplo n.º 3
0
        static async Task Main(string[] args)
        {
            var grid = new LifeGrid(75, 25);

            int iterations = 10000;

            Console.Clear();
            Console.WriteLine($"Number of iterations: {iterations}");

            grid.Randomize();
            var stopWatch = Stopwatch.StartNew();

            for (int i = 0; i < iterations; i++)
            {
                await grid.UpdateState();
            }
            Console.WriteLine($"Nested for: {stopWatch.ElapsedMilliseconds}ms");

            grid.Randomize();
            stopWatch = Stopwatch.StartNew();
            for (int i = 0; i < iterations; i++)
            {
                await grid.ParallelTaskUpdateState();
            }
            Console.WriteLine($"Parallel Tasks: {stopWatch.ElapsedMilliseconds}ms");

            grid.Randomize();
            stopWatch = Stopwatch.StartNew();
            for (int i = 0; i < iterations; i++)
            {
                await grid.ParallelForUpdateState();
            }
            Console.WriteLine($"Parallel.For: {stopWatch.ElapsedMilliseconds}ms");

            grid.Randomize();
            stopWatch = Stopwatch.StartNew();
            for (int i = 0; i < iterations; i++)
            {
                await grid.OveryParallelTaskUpdateState();
            }
            Console.WriteLine($"Overly Parallel Tasks: {stopWatch.ElapsedMilliseconds}ms");

            grid.Randomize();
            stopWatch = Stopwatch.StartNew();
            for (int i = 0; i < iterations; i++)
            {
                await grid.OverlyParallelForUpdateState();
            }
            Console.WriteLine($"Overly Parallel.For: {stopWatch.ElapsedMilliseconds}ms");

            Console.WriteLine("Complete");
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var grid = new LifeGrid(25, 65);

            grid.Randomize();

            ShowGrid(grid.CurrentState);

            while (Console.ReadLine() != "q")
            {
                grid.UpdateState();
                ShowGrid(grid.CurrentState);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Main entry point.
        /// Executes the program.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            // Prepare game
            InitGame();

            // Show grid for the first time
            ShowGrid(MyGrid.CurrentState);

            // Start updating on player demand
            while (Console.ReadLine() != "q")
            {
                MyGrid.UpdateState();
                ShowGrid(MyGrid.CurrentState);
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            var grid = new LifeGrid(25, 65);

            grid.Randomize();

            ShowGrid(grid.CurrentState);

            while (true)
            {
                grid.UpdateState();
                ShowGrid(grid.CurrentState);

                Thread.Sleep(500);
            }
        }
Ejemplo n.º 7
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to Game Of Life");



            Console.WriteLine("Choose size of Field :");
            int widthOfField  = int.Parse(Console.ReadLine());
            int heightOfField = int.Parse(Console.ReadLine());



            var grid = new LifeGrid(widthOfField, heightOfField);

            grid.RandomizationOfField();

            int iterations = 0;



            ShowGrid(grid.CurrentState);

            //Task task1 = new Task(() =>
            //  {
            //      var iterateEachSecond = Console.ReadLine();



            while (true /*Console.ReadLine() != "q"*/)
            {
                grid.UpdateState();
                ShowGrid(grid.CurrentState);
                iterations++;
                //aliveCells.Sum();
                //Console.WriteLine($"Alive cells {grid.SumOfAliveCells(widthOfField,heightOfField)}");
                Console.WriteLine($"Iterations : {iterations}");
                Thread.Sleep(2000);
            }

            //Console.WriteLine(" =================================");
            //Console.WriteLine("Press press space to exit from game ");
            //Console.ReadKey();

            //  });

            //task1.Start();
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            var grid = new LifeGrid(25, 100);

            //grid.currentState[1, 2] = CellState.Alive;
            //grid.currentState[2, 2] = CellState.Alive;
            //grid.currentState[3, 2] = CellState.Alive;

            grid.Randomize();

            ShowGrid(grid.currentState);

            while (Console.ReadLine() != "q")
            {
                grid.UpdateState();
                ShowGrid(grid.currentState);
            }
        }