static async Task Main(string[] args) { LifeSimulation sim = new LifeSimulation(40); sim.Randomize(); for (int i = 0; i < 1000; i++) { await sim.Update(); await OutputBoard(sim); await Task.Delay(100); } Console.ReadKey(); }
private static async Task OutputBoard(LifeSimulation sim) { var alive = (name : "1", color : ConsoleColor.Red); var dead = (name : "0", color : ConsoleColor.White); await Task.Run( () => { for (int y = 0; y < sim.Size; y++) { for (int x = 0; x < sim.Size; x++) { Console.SetCursorPosition(x, y); Console.ForegroundColor = sim[x, y] ? alive.color : dead.color; Console.Write(sim[x, y] ? alive.name : dead.name); } } }); }