Skip to content

Commit b50cedd

Browse files
Added parameters to compiler for passing to constructor of generated program code.
Added default value for trainingCount to math fitness methods.
1 parent ede27db commit b50cedd

File tree

7 files changed

+14
-12
lines changed

7 files changed

+14
-12
lines changed

AIProgrammer.Compiler/BrainPlus.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ public static class BrainPlus
2121
/// <param name="program">Brainfuck source code</param>
2222
/// <param name="pathName">Executable file path</param>
2323
/// <param name="fitness">IFitness</param>
24-
/// <param name="maxIterations">Max number of instructions that interpreter will execute</param>
24+
/// <param name="constructorParams">Parameters to pass to fitness method constructor, after GA.</param>
2525
/// <param name="includeHeader">True to display the header (Brainfuck .NET Compiler 1.0, Created by ...).</param>
26-
public static void Compile(string program, string pathName, IFitness fitness, int maxIterations, bool includeHeader = true)
26+
public static void Compile(string program, string pathName, IFitness fitness, string constructorParams, bool includeHeader = true)
2727
{
28-
Compile(program, pathName, fitness.GetType().Name, maxIterations);
28+
Compile(program, pathName, fitness.GetType().Name, constructorParams);
2929
}
3030

3131
/// <summary>
@@ -34,9 +34,9 @@ public static void Compile(string program, string pathName, IFitness fitness, in
3434
/// <param name="program">Brainfuck source code</param>
3535
/// <param name="pathName">Executable file path</param>
3636
/// <param name="fitnessMethod">string (HelloUserFitness, StringOptimizedFitness, etc)</param>
37-
/// <param name="maxIterations">Max number of instructions that interpreter will execute</param>
37+
/// <param name="constructorParams">Parameters to pass to fitness method constructor, after GA.</param>
3838
/// <param name="includeHeader">True to display the header (Brainfuck .NET Compiler 1.0, Created by ...).</param>
39-
public static void Compile(string program, string pathName, string fitnessMethod, int maxIterations, bool includeHeader = true)
39+
public static void Compile(string program, string pathName, string fitnessMethod, string constructorParams, bool includeHeader = true)
4040
{
4141
string sourceCode = @"
4242
using System;
@@ -47,7 +47,7 @@ class Program {
4747
public static void Main(string[] args)
4848
{
4949
string program = ""[SOURCE]"";
50-
IFitness fitness = new [FITNESSMETHOD](null, [MAXITERATIONS], """");
50+
IFitness fitness = new [FITNESSMETHOD](null, [PARAMETERS]);
5151
5252
[HEADER]
5353
@@ -81,7 +81,7 @@ public static void Main(string[] args)
8181

8282
sourceCode = sourceCode.Replace("[SOURCE]", program);
8383
sourceCode = sourceCode.Replace("[FITNESSMETHOD]", fitnessMethod);
84-
sourceCode = sourceCode.Replace("[MAXITERATIONS]", maxIterations.ToString());
84+
sourceCode = sourceCode.Replace("[PARAMETERS]", constructorParams);
8585

8686
CompilerResults results = provider.CompileAssemblyFromSource(parameters, sourceCode);
8787

AIProgrammer.Fitness/Concrete/AddCleanFitness.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class AddCleanFitness : FitnessBase
1818
{
1919
private int _trainingCount = 5;
2020

21-
public AddCleanFitness(GA ga, int maxIterationCount, int maxTrainingCount)
21+
public AddCleanFitness(GA ga, int maxIterationCount, int maxTrainingCount = 5)
2222
: base(ga, maxIterationCount)
2323
{
2424
_trainingCount = maxTrainingCount;

AIProgrammer.Fitness/Concrete/AddFitness.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class AddFitness : FitnessBase
1717
{
1818
private int _trainingCount = 5;
1919

20-
public AddFitness(GA ga, int maxIterationCount, int maxTrainingCount)
20+
public AddFitness(GA ga, int maxIterationCount, int maxTrainingCount = 5)
2121
: base(ga, maxIterationCount)
2222
{
2323
_trainingCount = maxTrainingCount;
@@ -44,6 +44,7 @@ public override double GetFitnessMethod(string program)
4444
case 2: input1 = 5; input2 = 1; break;
4545
case 3: input1 = 6; input2 = 2; break;
4646
case 4: input1 = 3; input2 = 6; break;
47+
case 5: input1 = 2; input2 = 0; break;
4748
};
4849

4950
try

AIProgrammer.Fitness/Concrete/AddToCharFitness.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class AddToCharFitness : FitnessBase
1717
{
1818
private int _trainingCount = 5;
1919

20-
public AddToCharFitness(GA ga, int maxIterationCount, int maxTrainingCount)
20+
public AddToCharFitness(GA ga, int maxIterationCount, int maxTrainingCount = 5)
2121
: base(ga, maxIterationCount)
2222
{
2323
_trainingCount = maxTrainingCount;

AIProgrammer.Fitness/Concrete/HelloUserFitness.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public override double GetFitnessMethod(string program)
5151
case 1: name = "me"; break;
5252
case 2: name = "jay"; break;
5353
case 3: name = "kory"; break;
54+
case 4: name = "jamie"; break;
5455
};
5556

5657
sb.Clear();

AIProgrammer.Fitness/Concrete/MultiplyFitness.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class MultiplyFitness : FitnessBase
1616
{
1717
private int _trainingCount = 5;
1818

19-
public MultiplyFitness(GA ga, int maxIterationCount, int maxTrainingCount)
19+
public MultiplyFitness(GA ga, int maxIterationCount, int maxTrainingCount = 5)
2020
: base(ga, maxIterationCount)
2121
{
2222
_trainingCount = maxTrainingCount;

AIProgrammer.Fitness/Concrete/SubtractFitness.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class SubtractFitness : FitnessBase
1616
{
1717
private int _trainingCount = 5;
1818

19-
public SubtractFitness(GA ga, int maxIterationCount, int maxTrainingCount)
19+
public SubtractFitness(GA ga, int maxIterationCount, int maxTrainingCount = 5)
2020
: base(ga, maxIterationCount)
2121
{
2222
_trainingCount = maxTrainingCount;

0 commit comments

Comments
 (0)