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
        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.º 3
0
        static async Task Main(string[] args)
        {
            bool auto = false;

            if (args.Length > 0)
            {
                auto = args.Contains("-auto");
            }

            int rows    = 30;
            int columns = 79;

            var grid = new LifeGrid(rows, columns);

            grid.Randomize();

            Console.Clear();
            ShowGrid(grid.CurrentState);

            if (auto)
            {
                await RunAutoAdvance(grid);
            }
            else
            {
                await RunManualAdvance(grid);
            }
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var grid = new LifeGrid(25, 70);

            grid.Randomize();

            ShowGrid(grid.CurrentState);

            while (Console.ReadLine() != "q")
            {
                grid.UpdateState3();
                ShowGrid(grid.CurrentState);
            }
        }
Ejemplo n.º 5
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.º 6
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);
            }
        }