void Run() { //preparing Console Console.Clear(); Console.CursorVisible = false; _drawer = new ConsoleDrawing(); ConsoleDrawing.ShowControls(); form = new Form(); form.Width = 1920; form.Height = 1080; graphViewportPainter = new IOGraphViewportPainter(new IOGraphPainter()); graphControl = new GraphControl(); graphControl.ViewportPainter = graphViewportPainter; graphControl.Width = form.Width; graphControl.Height = form.Height; form.Controls.Add(graphControl); form.Show(); form.Visible = false; tetrisAI = new TetrisAI(this, (x) => { if (++saveCount >= 20) { saveCount = 0; Task.Run(() => form.Invoke((MethodInvoker) delegate { tetrisAI.Save(); Console.WriteLine("Network saved!"); })); } }, HandleNewBestNetwork, File.Exists("SavedProgress.xml")); tetrisAI.StartTraining(); Task.Run(() => { while (KeyPressedHandler(Console.ReadKey())) { ; } form.Invoke((MethodInvoker) delegate { form.Close(); }); }); form.ShowDialog(); tetrisAI.StopTraining(); tetrisAI.Save(); Console.ResetColor(); Console.CursorVisible = true; }
void Run() { //preparing Console Console.Clear(); Console.CursorVisible = false; _drawer = new ConsoleDrawing(); ConsoleDrawing.ShowControls(); tetrisAI = new TetrisAI(this, (x) => Console.WriteLine("Generation: " + x), (x) => Console.WriteLine("Top Fitness: " + x)); tetrisAI.StartTraining(); while (KeyPressedHandler(Console.ReadKey(true))) { } Console.ResetColor(); Console.CursorVisible = true; }