Merge pull request #528 from BordynConfused/master
BasicBot got smarter
This commit is contained in:
commit
dc00fd0a4b
|
@ -531,9 +531,7 @@
|
|||
<Compile Include="CustomControls\ViewportPanel.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CustomControls\VirtualListView.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CustomControls\VirtualListView.cs" />
|
||||
<Compile Include="CustomControls\Win32.cs" />
|
||||
<Compile Include="DisplayManager\DisplayManager.cs" />
|
||||
<Compile Include="DisplayManager\DisplaySurface.cs" />
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -284,7 +284,59 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
public string FromSlot
|
||||
public byte MainComparisonType
|
||||
{
|
||||
get
|
||||
{
|
||||
return (byte)mainOperator.SelectedIndex;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < 5) mainOperator.SelectedIndex = value;
|
||||
else mainOperator.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public byte Tie1ComparisonType
|
||||
{
|
||||
get
|
||||
{
|
||||
return (byte)Tiebreak1Operator.SelectedIndex;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < 5) Tiebreak1Operator.SelectedIndex = value;
|
||||
else Tiebreak1Operator.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public byte Tie2ComparisonType
|
||||
{
|
||||
get
|
||||
{
|
||||
return (byte)Tiebreak2Operator.SelectedIndex;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < 5) Tiebreak2Operator.SelectedIndex = value;
|
||||
else Tiebreak2Operator.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public byte Tie3ComparisonType
|
||||
{
|
||||
get
|
||||
{
|
||||
return (byte)Tiebreak3Operator.SelectedIndex;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < 5) Tiebreak3Operator.SelectedIndex = value;
|
||||
else Tiebreak3Operator.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public string FromSlot
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -392,6 +444,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
TieBreaker2Address = 0;
|
||||
TieBreaker3Address = 0;
|
||||
StartFromSlotBox.SelectedIndex = 0;
|
||||
mainOperator.SelectedIndex = 0;
|
||||
Tiebreak1Operator.SelectedIndex = 0;
|
||||
Tiebreak2Operator.SelectedIndex = 0;
|
||||
Tiebreak3Operator.SelectedIndex = 0;
|
||||
|
||||
UpdateBestAttempt();
|
||||
}
|
||||
|
@ -549,6 +605,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
public int TieBreak1 { get; set; }
|
||||
public int TieBreak2 { get; set; }
|
||||
public int TieBreak3 { get; set; }
|
||||
public byte ComparisonTypeMain { get; set; }
|
||||
public byte ComparisonTypeTie1 { get; set; }
|
||||
public byte ComparisonTypeTie2 { get; set; }
|
||||
public byte ComparisonTypeTie3 { get; set; }
|
||||
|
||||
public List<string> Log { get; set; }
|
||||
}
|
||||
|
||||
|
@ -560,7 +621,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
public int TieBreaker1 { get; set; }
|
||||
public int TieBreaker2 { get; set; }
|
||||
public int TieBreaker3 { get; set; }
|
||||
public int FrameLength { get; set; }
|
||||
public byte ComparisonTypeMain { get; set; }
|
||||
public byte ComparisonTypeTie1 { get; set; }
|
||||
public byte ComparisonTypeTie2 { get; set; }
|
||||
public byte ComparisonTypeTie3 { get; set; }
|
||||
public int FrameLength { get; set; }
|
||||
public string FromSlot { get; set; }
|
||||
public long Attempts { get; set; }
|
||||
public long Frames { get; set; }
|
||||
|
@ -611,6 +676,20 @@ namespace BizHawk.Client.EmuHawk
|
|||
TieBreaker1Address = botData.TieBreaker1;
|
||||
TieBreaker2Address = botData.TieBreaker2;
|
||||
TieBreaker3Address = botData.TieBreaker3;
|
||||
try
|
||||
{
|
||||
MainComparisonType = botData.ComparisonTypeMain;
|
||||
Tie1ComparisonType = botData.ComparisonTypeTie1;
|
||||
Tie2ComparisonType = botData.ComparisonTypeTie2;
|
||||
Tie3ComparisonType = botData.ComparisonTypeTie3;
|
||||
}
|
||||
catch
|
||||
{
|
||||
MainComparisonType = 0;
|
||||
Tie1ComparisonType = 0;
|
||||
Tie2ComparisonType = 0;
|
||||
Tie3ComparisonType = 0;
|
||||
}
|
||||
FrameLength = botData.FrameLength;
|
||||
FromSlot = botData.FromSlot;
|
||||
Attempts = botData.Attempts;
|
||||
|
@ -639,14 +718,18 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void SaveBotFile(string path)
|
||||
{
|
||||
var data = new BotData
|
||||
{
|
||||
Best = _bestBotAttempt,
|
||||
ControlProbabilities = ControlProbabilities,
|
||||
Maximize = MaximizeAddress,
|
||||
TieBreaker1 = TieBreaker1Address,
|
||||
TieBreaker2 = TieBreaker2Address,
|
||||
TieBreaker3 = TieBreaker3Address,
|
||||
var data = new BotData
|
||||
{
|
||||
Best = _bestBotAttempt,
|
||||
ControlProbabilities = ControlProbabilities,
|
||||
Maximize = MaximizeAddress,
|
||||
TieBreaker1 = TieBreaker1Address,
|
||||
TieBreaker2 = TieBreaker2Address,
|
||||
TieBreaker3 = TieBreaker3Address,
|
||||
ComparisonTypeMain = MainComparisonType,
|
||||
ComparisonTypeTie1 = Tie1ComparisonType,
|
||||
ComparisonTypeTie2 = Tie2ComparisonType,
|
||||
ComparisonTypeTie3 = Tie3ComparisonType,
|
||||
FromSlot = FromSlot,
|
||||
FrameLength = FrameLength,
|
||||
Attempts = Attempts,
|
||||
|
@ -799,35 +882,53 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private bool IsBetter(BotAttempt best, BotAttempt current)
|
||||
{
|
||||
if (current.Maximize > best.Maximize)
|
||||
if (!TestValue(MainComparisonType, current.Maximize, best.Maximize))
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
else if (current.Maximize == best.Maximize)
|
||||
{
|
||||
if (current.TieBreak1 > best.TieBreak1)
|
||||
if (!TestValue(Tie1ComparisonType, current.TieBreak1, best.TieBreak1))
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
else if (current.TieBreak1 == best.TieBreak1)
|
||||
{
|
||||
if (current.TieBreak2 > best.TieBreak2)
|
||||
if (!TestValue(Tie2ComparisonType, current.TieBreak2, best.TieBreak2))
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
else if (current.TieBreak2 == best.TieBreak2)
|
||||
{
|
||||
if (current.TieBreak3 > current.TieBreak3)
|
||||
if (!TestValue(Tie3ComparisonType, current.TieBreak3, current.TieBreak3))
|
||||
{
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool TestValue(byte operation, int currentValue, int bestValue)
|
||||
{
|
||||
switch (operation)
|
||||
{
|
||||
case 0:
|
||||
return currentValue > bestValue;
|
||||
case 1:
|
||||
return currentValue >= bestValue;
|
||||
case 2:
|
||||
return currentValue == bestValue;
|
||||
case 3:
|
||||
return currentValue <= bestValue;
|
||||
case 4:
|
||||
return currentValue < bestValue;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void UpdateBestAttempt()
|
||||
{
|
||||
if (_bestBotAttempt != null)
|
||||
|
|
56
BizHawk.sln
56
BizHawk.sln
|
@ -1,6 +1,8 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Version", "Version\Version.csproj", "{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BizHawk.Client.Common", "BizHawk.Client.Common\BizHawk.Client.Common.csproj", "{24A0AA3C-B25F-4197-B23D-476D6462DBA0}"
|
||||
|
@ -96,24 +98,28 @@ Global
|
|||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Release|Win32.ActiveCfg = Release|x86
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Release|x86.ActiveCfg = Release|x86
|
||||
{866F8D13-0678-4FF9-80A4-A3993FD4D8A3}.Release|x86.Build.0 = Release|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Win32.ActiveCfg = Debug|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|Win32.Build.0 = Debug|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Debug|x86.Build.0 = Debug|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Win32.ActiveCfg = Release|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|Win32.Build.0 = Release|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|x86.ActiveCfg = Release|x86
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723}.Release|x86.Build.0 = Release|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Win32.ActiveCfg = Debug|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|Win32.Build.0 = Debug|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Debug|x86.Build.0 = Debug|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Win32.ActiveCfg = Release|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|Win32.Build.0 = Release|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|x86.ActiveCfg = Release|x86
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3}.Release|x86.Build.0 = Release|x86
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
|
@ -166,14 +172,16 @@ Global
|
|||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Release|Win32.ActiveCfg = Release|x86
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Release|x86.ActiveCfg = Release|x86
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE}.Release|x86.Build.0 = Release|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Win32.ActiveCfg = Debug|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Win32.ActiveCfg = Debug|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|Win32.Build.0 = Debug|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Debug|x86.Build.0 = Debug|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Win32.ActiveCfg = Release|Any CPU
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Win32.ActiveCfg = Release|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|Win32.Build.0 = Release|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|x86.ActiveCfg = Release|x86
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9}.Release|x86.Build.0 = Release|x86
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
|
@ -211,18 +219,18 @@ Global
|
|||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
{DD448B37-BA3F-4544-9754-5406E8094723} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
{C4366030-6D03-424B-AE53-F4F43BB217C3} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
{24A0AA3C-B25F-4197-B23D-476D6462DBA0} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E} = {3627C08B-3E43-4224-9DA4-40BD69495FBC}
|
||||
{F51946EA-827F-4D82-B841-1F2F6D060312} = {3627C08B-3E43-4224-9DA4-40BD69495FBC}
|
||||
{E1A23168-B571-411C-B360-2229E7225E0E} = {3627C08B-3E43-4224-9DA4-40BD69495FBC}
|
||||
{197D4314-8A9F-49BA-977D-54ACEFAEB6BA} = {3627C08B-3E43-4224-9DA4-40BD69495FBC}
|
||||
{9F84A0B2-861E-4EF4-B89B-5E2A3F38A465} = {0540A9A6-977E-466D-8BD3-1D8590BD5282}
|
||||
{5160CFB1-5389-47C1-B7F6-8A0DC97641EE} = {0540A9A6-977E-466D-8BD3-1D8590BD5282}
|
||||
{2D2890A8-C338-4439-AD8B-CB9EE85A94F9} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
{337CA23E-65E7-44E1-9411-97EE08BB8116} = {0540A9A6-977E-466D-8BD3-1D8590BD5282}
|
||||
{E6B436B1-A3CD-4C9A-8F76-5D7154726884} = {0540A9A6-977E-466D-8BD3-1D8590BD5282}
|
||||
{B95649F5-A0AE-41EB-B62B-578A2AFF5E18} = {B51F1139-3D2C-41BE-A762-EF1F9B41EACA}
|
||||
EndGlobalSection
|
||||
GlobalSection(MonoDevelopProperties) = preSolution
|
||||
StartupItem = BizHawk.Client.EmuHawk\BizHawk.Client.EmuHawk.csproj
|
||||
|
|
Loading…
Reference in New Issue