static void Main(string[] args) { var optionSet = new OptionSet { {"p|pattern=", "A starting pattern, e.g. 'glider'", v=> _initialPattern = v}, {"x=", "The board x size", (int v) => _xSize= v}, {"y=", "The board y size", (int v) => _ySize= v}, {"g|generations=", "The number of generations", (int v) => _generations = v}, {"d|delay=", "The delay in milliseconds", (int v) => _delay = v} }; optionSet.Parse(args); InitialiseConsole(); var gridStrategy = SelectStrategy(); var life = new Life(_xSize, _ySize, gridStrategy); for (var i = 0; i < _generations; i++) { if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Escape) break; life.Tick(); Console.SetCursorPosition(0, 0); Console.Write(life.ToString()); Console.WriteLine(); Console.WriteLine("{0}/{1}", i + 1, _generations); if (_delay > 0) Thread.Sleep(_delay); } ResetConsole(); }
public Form1() { var boardSize = 100; InitializeComponent(); _life = new Life(boardSize, boardSize, new DefaultGridPopulationStrategy()); for (var i = 0; i < boardSize; i++) { grid.Columns.Add(new DataGridViewColumn(new DataGridViewTextBoxCell())); grid.Rows.Add(new DataGridViewRow()); } }