Skip to content

Commit 20dd9c5

Browse files
Merge pull request #17 from merschformann/merschformann/seeded-layouts
Allows seeding layouts
2 parents 70cd507 + cfd2b7c commit 20dd9c5

File tree

6 files changed

+54
-61
lines changed

6 files changed

+54
-61
lines changed

RAWSimO.Core/Configurations/LayoutConfiguration.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ public class LayoutConfiguration
3030

3131
#region member variables
3232

33+
/// <summary>
34+
/// The seed used to initialize the RNG.
35+
/// </summary>
36+
public int Seed = 0;
3337
/// <summary>
3438
/// The number of tiers to generate.
3539
/// </summary>

RAWSimO.Core/Generator/InstanceGenerator.cs

Lines changed: 31 additions & 33 deletions
Large diffs are not rendered by default.

RAWSimO.Core/Generator/LayoutGenerator.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ internal static void DebugPrintLayout(Tile[,] tiles, bool showRows = false, bool
169169
Console.Write((
170170
showRows ? i.ToString().PadLeft(maxRowIndexLength) :
171171
showCols ? j.ToString().PadLeft(maxColIndexLength) :
172-
(tiles[i, j] != null ? tiles[i, j].directionAsString() : " ")) +
172+
(tiles[i, j] != null ? tiles[i, j].directionAsString() : " ")) +
173173
(j == tiles.GetLength(1) - 1 ? "" : " "));
174174
Console.WriteLine();
175175
}
@@ -179,7 +179,6 @@ internal static void DebugPrintLayout(Tile[,] tiles, bool showRows = false, bool
179179

180180
public LayoutGenerator(
181181
LayoutConfiguration layoutConfiguration,
182-
IRandomizer rand,
183182
SettingConfiguration baseConfiguration,
184183
ControlConfiguration controlConfiguration,
185184
Action<string> logAction = null)
@@ -202,7 +201,7 @@ public LayoutGenerator(
202201
throw new ArgumentException("ControlConfiguration is not valid. " + errorMessage);
203202
}
204203

205-
this.rand = rand;
204+
this.rand = new RandomizerSimple(layoutConfiguration.Seed);
206205
this.baseConfiguration = baseConfiguration;
207206
elevatorPositions = new Dictionary<Tuple<double, double>, Elevator>();
208207
elevatorWaypoints = new Dictionary<Elevator, List<Waypoint>>();

RAWSimO.Core/IO/InstanceIO.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public static Instance ReadInstance(
105105
layoutConfig.ApplyOverrideConfig(settingConfig.OverrideConfig);
106106
// Generate instance
107107
logAction?.Invoke("Generating instance...");
108-
instance = InstanceGenerator.GenerateLayout(layoutConfig, new RandomizerSimple(0), settingConfig, controlConfig, logAction);
108+
instance = InstanceGenerator.GenerateLayout(layoutConfig, settingConfig, controlConfig, logAction);
109109
}
110110
else
111111
{

RAWSimO.Playground/Generators/InstanceGenerators.cs

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,23 @@ class InstanceGenerators
1515
{
1616
public static void GenerateMaTiInstances()
1717
{
18-
// Generate MaTi instances
19-
RandomizerSimple random = new RandomizerSimple(0);
2018
// Generate original MaTi set
21-
Instance tiny = InstanceGenerator.GenerateMaTiLayoutTiny(random, new SettingConfiguration(), new ControlConfiguration());
22-
Instance small = InstanceGenerator.GenerateMaTiLayoutSmall(random, new SettingConfiguration(), new ControlConfiguration());
23-
Instance medium = InstanceGenerator.GenerateMaTiLayoutMedium(random, new SettingConfiguration(), new ControlConfiguration());
24-
Instance large = InstanceGenerator.GenerateMaTiLayoutLarge(random, new SettingConfiguration(), new ControlConfiguration());
25-
Instance huge = InstanceGenerator.GenerateMaTiLayoutHuge(random, new SettingConfiguration(), new ControlConfiguration());
26-
InstanceIO.WriteInstance("MaTiTiny.xinst", tiny);
27-
InstanceIO.WriteInstance("MaTiSmall.xinst", small);
28-
InstanceIO.WriteInstance("MaTiMedium.xinst", medium);
29-
InstanceIO.WriteInstance("MaTiLarge.xinst", large);
30-
InstanceIO.WriteInstance("MaTiHuge.xinst", huge);
19+
InstanceIO.WriteInstance("MaTiTiny.xinst", InstanceGenerator.GenerateMaTiLayoutTiny(new SettingConfiguration(), new ControlConfiguration()));
20+
InstanceIO.WriteInstance("MaTiSmall.xinst", InstanceGenerator.GenerateMaTiLayoutSmall(new SettingConfiguration(), new ControlConfiguration()));
21+
InstanceIO.WriteInstance("MaTiMedium.xinst", InstanceGenerator.GenerateMaTiLayoutMedium(new SettingConfiguration(), new ControlConfiguration()));
22+
InstanceIO.WriteInstance("MaTiLarge.xinst", InstanceGenerator.GenerateMaTiLayoutLarge(new SettingConfiguration(), new ControlConfiguration()));
23+
InstanceIO.WriteInstance("MaTiHuge.xinst", InstanceGenerator.GenerateMaTiLayoutHuge(new SettingConfiguration(), new ControlConfiguration()));
3124
// Generate alternative MaTi set
32-
InstanceIO.WriteInstance("MaTiPico.xinst", InstanceGenerator.GenerateMaTiLayoutPico(random, new SettingConfiguration(), new ControlConfiguration()));
33-
InstanceIO.WriteInstance("MaTiNano.xinst", InstanceGenerator.GenerateMaTiLayoutNano(random, new SettingConfiguration(), new ControlConfiguration()));
34-
InstanceIO.WriteInstance("MaTiMicro.xinst", InstanceGenerator.GenerateMaTiLayoutMicro(random, new SettingConfiguration(), new ControlConfiguration()));
35-
InstanceIO.WriteInstance("MaTiMilli.xinst", InstanceGenerator.GenerateMaTiLayoutMilli(random, new SettingConfiguration(), new ControlConfiguration()));
36-
InstanceIO.WriteInstance("MaTiCenti.xinst", InstanceGenerator.GenerateMaTiLayoutCenti(random, new SettingConfiguration(), new ControlConfiguration()));
37-
InstanceIO.WriteInstance("MaTiDeca.xinst", InstanceGenerator.GenerateMaTiLayoutDeca(random, new SettingConfiguration(), new ControlConfiguration()));
38-
InstanceIO.WriteInstance("MaTiHecto.xinst", InstanceGenerator.GenerateMaTiLayoutHecto(random, new SettingConfiguration(), new ControlConfiguration()));
39-
InstanceIO.WriteInstance("MaTiKilo.xinst", InstanceGenerator.GenerateMaTiLayoutKilo(random, new SettingConfiguration(), new ControlConfiguration()));
40-
InstanceIO.WriteInstance("MaTiMega.xinst", InstanceGenerator.GenerateMaTiLayoutMega(random, new SettingConfiguration(), new ControlConfiguration()));
41-
InstanceIO.WriteInstance("MaTiGiga.xinst", InstanceGenerator.GenerateMaTiLayoutGiga(random, new SettingConfiguration(), new ControlConfiguration()));
25+
InstanceIO.WriteInstance("MaTiPico.xinst", InstanceGenerator.GenerateMaTiLayoutPico(new SettingConfiguration(), new ControlConfiguration()));
26+
InstanceIO.WriteInstance("MaTiNano.xinst", InstanceGenerator.GenerateMaTiLayoutNano(new SettingConfiguration(), new ControlConfiguration()));
27+
InstanceIO.WriteInstance("MaTiMicro.xinst", InstanceGenerator.GenerateMaTiLayoutMicro(new SettingConfiguration(), new ControlConfiguration()));
28+
InstanceIO.WriteInstance("MaTiMilli.xinst", InstanceGenerator.GenerateMaTiLayoutMilli(new SettingConfiguration(), new ControlConfiguration()));
29+
InstanceIO.WriteInstance("MaTiCenti.xinst", InstanceGenerator.GenerateMaTiLayoutCenti(new SettingConfiguration(), new ControlConfiguration()));
30+
InstanceIO.WriteInstance("MaTiDeca.xinst", InstanceGenerator.GenerateMaTiLayoutDeca(new SettingConfiguration(), new ControlConfiguration()));
31+
InstanceIO.WriteInstance("MaTiHecto.xinst", InstanceGenerator.GenerateMaTiLayoutHecto(new SettingConfiguration(), new ControlConfiguration()));
32+
InstanceIO.WriteInstance("MaTiKilo.xinst", InstanceGenerator.GenerateMaTiLayoutKilo(new SettingConfiguration(), new ControlConfiguration()));
33+
InstanceIO.WriteInstance("MaTiMega.xinst", InstanceGenerator.GenerateMaTiLayoutMega(new SettingConfiguration(), new ControlConfiguration()));
34+
InstanceIO.WriteInstance("MaTiGiga.xinst", InstanceGenerator.GenerateMaTiLayoutGiga(new SettingConfiguration(), new ControlConfiguration()));
4235
}
4336
}
4437
}

RAWSimO.Visualization/MainWindow.xaml.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,8 +1007,7 @@ private void ButtonGenerateInstance_Click(object sender, RoutedEventArgs e)
10071007
_baseConfiguration.VisualizationAttached = true;
10081008

10091009
// Generate
1010-
IRandomizer rand = new RandomizerSimple(0);
1011-
_instance = InstanceGenerator.GenerateLayout(_layoutConfig, rand, _baseConfiguration, _controlConfiguration);
1010+
_instance = InstanceGenerator.GenerateLayout(_layoutConfig, _baseConfiguration, _controlConfiguration);
10121011
_instanceInvalidated = false;
10131012
_instance.Name = _instance.GetMetaInfoBasedInstanceName();
10141013

0 commit comments

Comments
 (0)