diff --git a/GameOfLife/MainForm.cs b/GameOfLife/MainForm.cs index 1ba9281..97528bd 100644 --- a/GameOfLife/MainForm.cs +++ b/GameOfLife/MainForm.cs @@ -1,11 +1,6 @@ using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; namespace GameOfLife @@ -20,11 +15,13 @@ namespace GameOfLife private Random random; - private int gridSize = 4; + private int gridSize = 8; private int magicCells = 0; - private double density = 0.45; + private double density = 0.35; + + private int interval = 500; public MainForm(Rectangle bounds) { @@ -49,7 +46,7 @@ namespace GameOfLife Cursor.Hide(); TopMost = true; - timer.Interval = 50; + timer.Interval = interval; timer.Tick += new EventHandler(timer_Tick); timer.Start(); } @@ -159,20 +156,29 @@ namespace GameOfLife } private void Redraw(Graphics graphics) { - graphics.FillRectangle(Brushes.Black, Bounds); + List liveCells = new List(); + List deadCells = new List(); + for (var x = 0; x < newCells.GetLength(0); x++) { for (var y = 0; y < newCells.GetLength(1); y++) { if (newCells[x, y]) { - graphics.FillRectangle(Brushes.White, x * gridSize, y * gridSize, gridSize, gridSize); + liveCells.Add(new Rectangle(x * gridSize, y * gridSize, gridSize, gridSize)); + } + else { + deadCells.Add(new Rectangle(x * gridSize, y * gridSize, gridSize, gridSize)); } //else if (!newCells[x, y]) { // graphics.FillRectangle(Brushes.Black, x * gridSize, y * gridSize, gridSize, gridSize); //} } } + + graphics.FillRectangle(Brushes.Black, Bounds); + //graphics.FillRectangles(Brushes.Black, deadCells.ToArray()); + graphics.FillRectangles(Brushes.White, liveCells.ToArray()); } private void MainForm_Paint(object sender, PaintEventArgs e)