⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 包括Pheromones Algorythm、Memory Algorythm和Hill Climbing Algorythm I
💻 CS
📖 第 1 页 / 共 5 页
字号:
					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 + -