Skip to content

Commit fad39e5

Browse files
committed
UI visualization for brains
1 parent 9790ffb commit fad39e5

18 files changed

+120
-75
lines changed

MattEland.FSharpGeneticAlgorithm.Logic/Simulator.fs

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
open MattEland.FSharpGeneticAlgorithm.Logic.WorldPos
44
open MattEland.FSharpGeneticAlgorithm.Logic.World
55
open MattEland.FSharpGeneticAlgorithm.Logic.Actors
6-
open MattEland.FSharpGeneticAlgorithm.Logic.WorldGeneration
76
open MattEland.FSharpGeneticAlgorithm.Genetics.Genes
87

98
type SimulationState = Simulating=0 | Won=1 | Lost=2
@@ -134,31 +133,4 @@ let handleBrainMove brain state (random: System.Random) =
134133

135134
let simulateAiTurn state (random: System.Random) brain =
136135
let newState = handleBrainMove brain state random
137-
simulateActors(newState) random.Next
138-
139-
type BrainSimulationResult =
140-
{
141-
brain: SquirrelPriorities
142-
fitness: double
143-
states: GameState[]
144-
}
145-
146-
let buildStartingState(random: System.Random): GameState =
147-
let world = makeWorld 13 13 random.Next
148-
{
149-
World = world;
150-
SimState = SimulationState.Simulating;
151-
TurnsLeft = 30
152-
}
153-
154-
let simulateBrain brain: BrainSimulationResult =
155-
let random = System.Random()
156-
157-
let initialState: GameState = buildStartingState random
158-
let states: GameState[] = [|initialState|]
159-
160-
{
161-
fitness = 0.0;
162-
brain = brain;
163-
states = states
164-
}
136+
simulateActors(newState) random.Next
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<UserControl x:Class="MattEland.FSharpGeneticAlgorithm.WindowsClient.BrainInfoControl"
2+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6+
xmlns:viewModels="clr-namespace:MattEland.FSharpGeneticAlgorithm.WindowsClient.ViewModels"
7+
mc:Ignorable="d"
8+
d:DataContext="{d:DesignInstance viewModels:BrainInfoViewModel}">
9+
<StackPanel>
10+
<TextBlock Margin="0,10,0,0">Dog</TextBlock>
11+
<ProgressBar Minimum="-1" Maximum="1" Value="{Binding DoggoPriority, Mode=OneWay}"></ProgressBar>
12+
<TextBlock Margin="0,10,0,0">Rabbit</TextBlock>
13+
<ProgressBar Minimum="-1" Maximum="1" Value="{Binding RabbitPriority, Mode=OneWay}"></ProgressBar>
14+
<TextBlock Margin="0,10,0,0">Acorn</TextBlock>
15+
<ProgressBar Minimum="-1" Maximum="1" Value="{Binding AcornPriority, Mode=OneWay}"></ProgressBar>
16+
<TextBlock Margin="0,10,0,0">Tree</TextBlock>
17+
<ProgressBar Minimum="-1" Maximum="1" Value="{Binding TreePriority, Mode=OneWay}"></ProgressBar>
18+
<TextBlock Margin="0,10,0,0">Random</TextBlock>
19+
<ProgressBar Minimum="-1" Maximum="1" Value="{Binding RandomPriority, Mode=OneWay}"></ProgressBar>
20+
<TextBlock Margin="0,10,0,0">Squirrel</TextBlock>
21+
<ProgressBar Minimum="-1" Maximum="1" Value="{Binding SquirrelPriority, Mode=OneWay}"></ProgressBar>
22+
</StackPanel>
23+
</UserControl>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using System.Windows;
5+
using System.Windows.Controls;
6+
using System.Windows.Data;
7+
using System.Windows.Documents;
8+
using System.Windows.Input;
9+
using System.Windows.Media;
10+
using System.Windows.Media.Imaging;
11+
using System.Windows.Navigation;
12+
using System.Windows.Shapes;
13+
14+
namespace MattEland.FSharpGeneticAlgorithm.WindowsClient
15+
{
16+
/// <summary>
17+
/// Interaction logic for BrainInfoControl.xaml
18+
/// </summary>
19+
public partial class BrainInfoControl : UserControl
20+
{
21+
public BrainInfoControl()
22+
{
23+
InitializeComponent();
24+
}
25+
}
26+
}

0 commit comments

Comments
 (0)