📄 form1.cs
字号:
if( ( ( StandardSquare )squaresArray[ i ] ).SquareType != "NEST"
&& ( ( StandardSquare )squaresArray[ i ] ).SquareType != "STANDARD" )
{
( ( StandardSquare )squaresArray[ i ] ).DecrementPathFoodPheromone();
( ( StandardSquare )squaresArray[ i ] ).Invalidate();
}
}
}
}
/// <summary>
/// select ants to be used by pathfinder
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnUseAntsClick(object sender, System.EventArgs e)
{
if( useAntsCheckBox.Checked == true )
{
useAmeobaCheckBox.Checked = true;
useAntsCheckBox.Checked = false;
critter = CrittersSet.AMEOBA;
RemoveAntsTabPages();
}
else
{
LogString( "Ants Selected" );
useAmeobaCheckBox.Checked = false;
useAntsCheckBox.Checked = true;
critter = CrittersSet.ANT;
AddAntsTabPages();
}
}
/// <summary>
/// remove the ants tab pages
/// </summary>
private void RemoveAntsTabPages()
{
/// LogString( "Removing the Ants Tab Pages" );
foreach( Control tempControl in tabControl1.Controls )
{
if( tempControl != null && tempControl.Name == "AntsGeneralPage" )
tabControl1.Controls.Remove( tempControl );
}
foreach( Control tempControl in tabControl1.Controls )
{
if( tempControl != null && tempControl.Name == "AntTimersPage" )
tabControl1.Controls.Remove( tempControl );
}
}
/// <summary>
/// Add the ants tab pages
/// </summary>
private void AddAntsTabPages()
{
/// LogString( "Adding The Ants Tab Pages" );
bool bIsPresent = false;
foreach( Control tempControl in tabControl1.Controls )
{
if( tempControl != null && tempControl.Name == "AntsGeneralPage" )
bIsPresent = true;
}
if( bIsPresent == false )
{
tabControl1.Controls.Add( antsGeneralPage );
}
bIsPresent = false;
foreach( Control tempControl in tabControl1.Controls )
{
if( tempControl != null && tempControl.Name == "AntTimersPage" )
bIsPresent = true;
}
if( bIsPresent == false )
{
tabControl1.Controls.Add( antsTimersPage );
}
}
/// <summary>
/// select the amoeba for use with pathfinder
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnUseAmeobaClick(object sender, System.EventArgs e)
{
LogString( "Ameoba Selected" );
if( useAmeobaCheckBox.Checked == true )
{
useAmeobaCheckBox.Checked = false;
useAntsCheckBox.Checked = true;
critter = CrittersSet.ANT;
AddAntsTabPages();
}
else
{
useAmeobaCheckBox.Checked = true;
useAntsCheckBox.Checked = false;
critter = CrittersSet.AMEOBA;
RemoveAntsTabPages();
}
}
/// <summary>
/// don't allows follow the strongest pheromone
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void OnDoNotAllwaysFollowStrongestPheromone(object sender, System.EventArgs e)
{
LogString( "Do Not Always Follow Strongest Pheromone Selected" );
if( antsGeneralPage.AlwaysFollowPheromoneBoxChecked == false )
{
antsGeneralPage.AlwaysFollowPheromoneBoxChecked = true;
if( critter == CrittersSet.ANT && crittersArray.Count > 0 )
{
for( int i=0; i<antsGeneralPage.NumberOfAffectedAnts; i++ )
{
( ( Ant )crittersArray[ i ] ).DontAlwaysFollowStrongestPheromone = true;
}
}
}
else
{
antsGeneralPage.AlwaysFollowPheromoneBoxChecked = false;
if( critter == CrittersSet.ANT && crittersArray.Count > 0 )
{
for( int i=0; i<antsGeneralPage.NumberOfAffectedAnts; i++ )
{
( ( Ant )crittersArray[ i ] ).DontAlwaysFollowStrongestPheromone = false;
}
}
}
}
/// <summary>
/// should the critter try to avaoid any squares that are already occupied
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void OnTryToAvoidOccupiedSquares(object sender, System.EventArgs e)
{
LogString( "Try To Avoid Occupied Squares Selected" );
if( antsGeneralPage.OccupiedSquaresBoxChecked == true )
{
antsGeneralPage.OccupiedSquaresBoxChecked = false;
if( critter == CrittersSet.ANT && crittersArray.Count > 0 )
{
for( int i=0; i<crittersArray.Count; i++ )
{
( ( Critter )crittersArray[ i ] ).TryToAvoidOccupiedSquares = false;
}
}
}
else
{
antsGeneralPage.OccupiedSquaresBoxChecked = true;
if( critter == CrittersSet.ANT && crittersArray.Count > 0 )
{
for( int i=0; i<crittersArray.Count; i++ )
{
( ( Critter )crittersArray[ i ] ).TryToAvoidOccupiedSquares = true;
}
}
}
}
/// <summary>
/// use the basic algorythm for all critters
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void useBasicCheckBox_CheckedChanged(object sender, System.EventArgs e)
{
if( useBasicCheckBox.Checked == true )
{
LogString( "Use Basic Algorythn Deselected" );
useBasicCheckBox.Checked = false;
useBasic2CheckBox.Checked = true;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.BASIC2;
}
else
{
LogString( "Use Basic Algorythm Selected" );
useBasicCheckBox.Checked = true;
useBasic2CheckBox.Checked = false;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.BASIC;
}
}
/// <summary>
/// use the basic2 algorythm for all critters
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void useBasic2CheckBox_CheckedChanged(object sender, System.EventArgs e)
{
if( useBasic2CheckBox.Checked == true )
{
LogString( "Use Second Basic Algorythm Deselected" );
useBasic2CheckBox.Checked = false;
useBasicCheckBox.Checked = true;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.BASIC;
}
else
{
LogString( "Use Second Basic Algorythm Selected" );
useBasic2CheckBox.Checked = true;
useBasicCheckBox.Checked = false;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.BASIC2;
}
}
private void UsePheromonesAlgorythm(object sender, System.EventArgs e)
{
if( pheromonesCheckBox.Checked == true )
{
LogString( "Use Pheromones Algorythm Deselected" );
useBasic2CheckBox.Checked = false;
useBasicCheckBox.Checked = true;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.BASIC;
}
else
{
LogString( "Use Pheromones Algorythm Selected" );
useBasic2CheckBox.Checked = false;
useBasicCheckBox.Checked = false;
pheromonesCheckBox.Checked = true;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.PHEROMONES;
}
}
private void UseMemoryAlgorythm(object sender, System.EventArgs e)
{
if( memoryCheckBox.Checked == true )
{
LogString( "Use Memory Algorythm Deselected" );
useBasic2CheckBox.Checked = false;
useBasicCheckBox.Checked = true;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.BASIC;
}
else
{
LogString( "Use Memory Algorythm Selected" );
useBasic2CheckBox.Checked = false;
useBasicCheckBox.Checked = false;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = true;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.MEMORY;
}
}
private void UseHillClimbingAlgorythm(object sender, System.EventArgs e)
{
if( hillClimbingCheckBox.Checked == true )
{
LogString( "Use Hill Climbing Algorythm Deselected" );
useBasic2CheckBox.Checked = false;
useBasicCheckBox.Checked = false;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = true;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.HILLCLIMBTWO;
}
else
{
LogString( "Use Hill Climbing Algorythm Selected" );
useBasicCheckBox.Checked = false;
useBasic2CheckBox.Checked = false;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = true;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
this.algorythm = AlgorythmSet.HILLCLIMB;
}
}
private void UseHillClimbingTwoAlgorythm(object sender, System.EventArgs e)
{
if( this.useHillClimbingTwoAlgorythmCheckBox.Checked == true )
{
LogString( "Use Hill Climbing Algorythm Two Deselected" );
useBasicCheckBox.Checked = true;
useBasic2CheckBox.Checked = false;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = false;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
algorythm = AlgorythmSet.BASIC;
}
else
{
LogString( "Use Hill Climbing Algorythm Two Selected" );
useBasicCheckBox.Checked = false;
useBasic2CheckBox.Checked = false;
pheromonesCheckBox.Checked = false;
memoryCheckBox.Checked = false;
hillClimbingCheckBox.Checked = false;
useHillClimbingTwoAlgorythmCheckBox.Checked = true;
useHillClimbingThreeAlgorythmCheckBox.Checked = false;
algorythm = AlgorythmSet.HILLCLIMBTWO;
}
}
private void UseHillClimbingThreeAlgorythm(object sender, System.EventArgs e)
{
if( this.useHillClimbingThreeAlgorythmCheckBox.Checked == true )
{
LogString( "Use Hill Climbing Three Algorythm Three Deselected" );
useBasicCheckBox.Checked = true;
useBasic2CheckBox.Checked = false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -