private void Btn_start_Clicked(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Neural Network Json | *.json"; DialogResult dr = ofd.ShowDialog(); if (dr == DialogResult.OK) { Network n = Network.LoadFromFile(ofd.FileName); GeneticAlgorithm.Initialize(false); for (int i = 0; i < GeneticAlgorithm.evolviAmount; i++) { Random RNG = new Random(); Evolvi j = new Evolvi(new Vector2(RNG.Next(100, 1900), RNG.Next(100, 1900)), false); j.Network = n.Clone(); GeneticAlgorithm.CurrentGeneration.Add(j); Thread.Sleep(50); } ScreenManager.SetScreen("SC_EVO"); } else { ScreenModal.ShowDialog("You did not choose a file, try again.", ModalButtons.OK); } }
public override void Update() { if (ScreenModal.isActive) { ScreenModal.Update(); } else { btn_start.Update(); btn_exit.Update(); btn_start_withoutload.Update(); } base.Update(); }
public override void Update() { btn_cancel.Update(); if (ScreenModal.isActive) { ScreenModal.Update(); } else { if (!GeneticAlgorithm.Loading) { ScreenManager.SetScreen("SC_EVO"); } } base.Update(); }
public override void Draw() { GameHelper.GraphicsDevice.Clear(Color.Gray); GameHelper.SpriteBatch.Begin(); GameHelper.SpriteBatch.DrawString(GameHelper.Font, "Evolution of Neural Networks through genetic algorithms", (GameHelper.Window.ClientBounds.Size.ToVector2() / 2f) + new Vector2(0, -100) + (-GameHelper.Font.MeasureString("Evolution of Neural Networks through genetic algorithms") / 2f), Color.White); btn_start.Draw(); btn_exit.Draw(); btn_start_withoutload.Draw(); if (ScreenModal.isActive) { ScreenModal.Draw(); } GameHelper.SpriteBatch.End(); base.Draw(); }
public override void Draw() { GameHelper.GraphicsDevice.Clear(Color.Gray); GameHelper.SpriteBatch.Begin(); GameHelper.SpriteBatch.DrawString(GameHelper.Font, "Loading...", new Vector2(GameHelper.GraphicsDevice.Viewport.Width / 2f, GameHelper.GraphicsDevice.Viewport.Height / 2f) - (GameHelper.Font.MeasureString("Loading...") / 2f), Color.White); GameHelper.DrawBar(new Rectangle((new Vector2(GameHelper.GraphicsDevice.Viewport.Width / 2f, GameHelper.GraphicsDevice.Viewport.Height / 2f) + new Vector2(-150, 50)).ToPoint(), new Point(300, 20)), GeneticAlgorithm.EvolviMaxAmount, GeneticAlgorithm.EvolviLoadedAmount, Color.Black, 1); GameHelper.SpriteBatch.DrawString(GameHelper.Font, Math.Round(((GeneticAlgorithm.EvolviLoadedAmount / (float)GeneticAlgorithm.EvolviMaxAmount) * 100)).ToString() + "%", new Vector2(GameHelper.GraphicsDevice.Viewport.Width / 2f, GameHelper.GraphicsDevice.Viewport.Height / 2f) + new Vector2(0, 62) - (GameHelper.Font.MeasureString(Math.Round(((GeneticAlgorithm.EvolviLoadedAmount / (float)GeneticAlgorithm.EvolviMaxAmount) * 100)).ToString() + "%") / 2f), Color.White); btn_cancel.Draw(); if (ScreenModal.isActive) { ScreenModal.Draw(); } GameHelper.SpriteBatch.End(); base.Draw(); }
public override void Draw() { GameHelper.GraphicsDevice.Clear(backColor); // WORLD GameHelper.SpriteBatch.Begin(SpriteSortMode.Immediate, null, SamplerState.PointClamp, null, null, null, Camera.Instance.ViewMatrix); GameHelper.SpriteBatch.DrawString(GameHelper.Font, "TESTING", new Vector2(20, 20), Color.Black); GameHelper.SpriteBatch.DrawString(GameHelper.Font, Camera.Instance.Zoom.ToString(), new Vector2(20, 40), Color.Black); // Borders GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], Vector2.Zero, null, Color.DarkGray, 0f, Vector2.Zero, new Vector2(2000), SpriteEffects.None, 0.0001f); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], Vector2.Zero, null, Color.Black, 0f, Vector2.Zero, new Vector2(4, 2000), SpriteEffects.None, 0.001f); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], Vector2.Zero, null, Color.Black, 0f, Vector2.Zero, new Vector2(2000, 4), SpriteEffects.None, 0.001f); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], new Vector2(2000, 0), null, Color.Black, 0f, Vector2.Zero, new Vector2(4, 2000), SpriteEffects.None, 0.001f); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], new Vector2(0, 2000), null, Color.Black, 0f, Vector2.Zero, new Vector2(2000, 4), SpriteEffects.None, 0.001f); // DRAW SHIT HERE GeneticAlgorithm.Draw(); if (SELECTED_EVOLVI != null) { SELECTED_EVOLVI.DrawSelected(selectedAngle); } GameHelper.SpriteBatch.End(); // GUI GameHelper.SpriteBatch.Begin(SpriteSortMode.Immediate, null, SamplerState.PointClamp, null, null, null, null); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], new Rectangle(0, 0, GameHelper.GraphicsDevice.Viewport.Width, 70), Color.DimGray * 0.7f); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], new Rectangle(0, 70, GameHelper.GraphicsDevice.Viewport.Width, 2), Color.Black); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], new Rectangle(0, GameHelper.GraphicsDevice.Viewport.Height - 70, GameHelper.GraphicsDevice.Viewport.Width, 70), Color.DimGray * 0.7f); GameHelper.SpriteBatch.Draw(GameHelper.TextureManager["PIXEL"], new Rectangle(0, GameHelper.GraphicsDevice.Viewport.Height - 72, GameHelper.GraphicsDevice.Viewport.Width, 2), Color.Black); GameHelper.SpriteBatch.DrawString(GameHelper.Font, "Generation: " + GeneticAlgorithm.Generation, new Vector2(10, GameHelper.GraphicsDevice.Viewport.Height - 70 + 15), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); if (GeneticAlgorithm.GenerationTime != 0) { GameHelper.SpriteBatch.DrawString(GameHelper.Font, "Generation Lifetime: " + Math.Round(GeneticAlgorithm.ElapsedGenerationTime) + " / " + GeneticAlgorithm.GenerationTime, new Vector2(10, GameHelper.GraphicsDevice.Viewport.Height - 70 + 40), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); } else { GameHelper.SpriteBatch.DrawString(GameHelper.Font, "Generation Lifetime: " + Math.Round(GeneticAlgorithm.ElapsedGenerationTime) + " / INF", new Vector2(10, GameHelper.GraphicsDevice.Viewport.Height - 70 + 40), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); } GameHelper.SpriteBatch.DrawString(GameHelper.Font, "(" + GeneticAlgorithm.EvolutionSpeed + "x)", new Vector2(215, GameHelper.GraphicsDevice.Viewport.Height - 70 + 40), Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f); btn_exit.Draw(); btn_debug.Draw(); btn_showNetwork.Draw(); btn_evoSpeed_1.Draw(); btn_evoSpeed_5.Draw(); btn_evoSpeed_10.Draw(); btn_pauseEvo.Draw(); btn_autoSelectOnNewGeneration.Draw(); btn_autoSelectBestPerformer.Draw(); btn_openConsole.Draw(); btn_openGrapher.Draw(); btn_resumeEvolution.Draw(); if (SHOW_NETWORK && SELECTED_EVOLVI != null) { DrawNetwork(SELECTED_EVOLVI.Network); } if (USING_CONSOLE) { MyConsole.Draw(); } if (MyGrapher.IsActive) { MyGrapher.Draw(); } if (MyIndividualViewer.IsActive) { MyIndividualViewer.Draw(); } if (ScreenModal?.isActive == true) { ScreenModal.Draw(); } GameHelper.SpriteBatch.End(); base.Draw(); }
public override void Update() { if (ScreenModal?.isActive == false) { GameHelper.Window.Title = "Time: " + Math.Round(GeneticAlgorithm.ElapsedGenerationTime) + " / " + GeneticAlgorithm.GenerationTime + " Generation: " + GeneticAlgorithm.Generation; btn_exit.Update(); btn_debug.Update(); btn_showNetwork.Update(); btn_evoSpeed_1.Update(); btn_evoSpeed_5.Update(); btn_evoSpeed_10.Update(); btn_pauseEvo.Update(); btn_autoSelectOnNewGeneration.Update(); btn_autoSelectBestPerformer.Update(); btn_openConsole.Update(); btn_openGrapher.Update(); btn_resumeEvolution.Update(); if (!USING_CONSOLE) { #region Camera Handling Camera.Instance.SetFocalPoint(camPos, false); Camera.Instance.Update(); if (InputManager.ScrolledUp()) { Camera.Instance.Zoom *= 1.1f; } if (InputManager.ScrolledDown()) { Camera.Instance.Zoom /= 1.1f; } if (InputManager.KeyPressing(Microsoft.Xna.Framework.Input.Keys.W)) { FOLLOW_SELECTED = false; camPos += new Vector2(0, -cameraSpeed / Camera.Instance.Zoom); } if (InputManager.KeyPressing(Microsoft.Xna.Framework.Input.Keys.S)) { FOLLOW_SELECTED = false; camPos += new Vector2(0, cameraSpeed / Camera.Instance.Zoom); } if (InputManager.KeyPressing(Microsoft.Xna.Framework.Input.Keys.A)) { FOLLOW_SELECTED = false; camPos += new Vector2(-cameraSpeed / Camera.Instance.Zoom, 0); } if (InputManager.KeyPressing(Microsoft.Xna.Framework.Input.Keys.D)) { FOLLOW_SELECTED = false; camPos += new Vector2(cameraSpeed / Camera.Instance.Zoom, 0); } #endregion if (InputManager.PressedMouseLeft()) { foreach (Evolvi e in GeneticAlgorithm.CurrentGeneration) { if (InputManager.MouseBoxWorld.Intersects(e.CollisionBox)) { SELECTED_EVOLVI = e; break; } } } if (InputManager.KeyPressed(Microsoft.Xna.Framework.Input.Keys.F)) { FOLLOW_SELECTED = true; } } if (USING_CONSOLE && InputManager.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape)) { USING_CONSOLE = false; } if (AUTOSELECT_BEST_PERFORMER && GeneticAlgorithm.CurrentGeneration.Count > 0) { SELECTED_EVOLVI = GeneticAlgorithm.SortFittest().Last(); } if (FOLLOW_SELECTED && SELECTED_EVOLVI != null) { camPos = SELECTED_EVOLVI.Position; } if (USING_CONSOLE) { MyConsole.Update(); } if (MyGrapher.IsActive) { MyGrapher.Update(); } if (MyIndividualViewer.IsActive) { MyIndividualViewer.Update(); } GeneticAlgorithm.Update(GameHelper.GameTime); selectedAngle += 0.05f; base.Update(); } else { ScreenModal.Update(); } }
private void Btn_exit_Clicked(object sender, EventArgs e) { ScreenModal.ShowDialog("Would you like to save the best neural network?", ModalButtons.YesNoCancel); }
private void Btn_start_withoutload_Clicked(object sender, EventArgs e) { ScreenModal.ShowDialog("This will create a new, empty, evolution. \nProceed?", ModalButtons.YesNo); }
private void Btn_cancel_Clicked(object sender, EventArgs e) { ScreenModal.ShowDialog("Are you sure you want to cancel?", ModalButtons.YesNo); }