public MainWindow() { InitializeComponent(); Task.Run( async() => { var gameState = new BooleanArrayGameState(); using var renderer = new GameStateRenderer(); gameState.SetIsAlive(4, 4, true); gameState.SetIsAlive(5, 4, true); gameState.SetIsAlive(6, 4, true); gameState.SetIsAlive(6, 5, true); gameState.SetIsAlive(5, 6, true); while (true) // TODO: play, pause, fps control, etc, etc { var bitmapSource = renderer.Render(gameState); Dispatcher.Invoke(() => RenderImage.Source = bitmapSource); gameState.Advance(); await Task.Delay(TimeSpan.FromMilliseconds(16)); } // ReSharper disable once FunctionNeverReturns } ); }
private static void Main(String[] args) { var state = new BooleanArrayGameState(); state.SetIsAlive(4, 4, true); state.SetIsAlive(5, 4, true); state.SetIsAlive(6, 4, true); state.SetIsAlive(6, 5, true); state.SetIsAlive(5, 6, true); for (Int32 i = 0; i < 100; i++) { Render(state); state.Advance(); Thread.Sleep(200); } }