Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }