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

📄 history.htm

📁 遗传算法GPE_release_v1.0.tar
💻 HTM
📖 第 1 页 / 共 2 页
字号:
							for( int y = 0; y &lt; m_Grid.Width; ++y ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							//initial Ant position<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							if( x == m_Position.X &amp;&amp; y == m_Position.Y ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							gBmp.FillRectangle( Brushes.Crimson, x*m_CellDim + 
							1, y*m_CellDim + 1, m_CellDim,</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							m_CellDim );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
							</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							//food<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							else if( m_Grid[x,y] == 1 ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							gBmp.FillEllipse( Brushes.Wheat, x*m_CellDim + 1, y*m_CellDim 
							+ 1, m_CellDim,</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							m_CellDim );</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							}<br>
							<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							//horizontal lines<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							if( x == 0 &amp;&amp; y != 0 ) gBmp.DrawLine( Pens.Black, 0, 
							y*m_CellDim + 1, dim, y*m_CellDim +</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							1 );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							}</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							//vertical lines<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							if( x != 0 ) gBmp.DrawLine( Pens.Black, x*m_CellDim 
							+ 1, 0, x*m_CellDim + 1, dim );</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; //otherwise, draw next move<br>
&nbsp;&nbsp;&nbsp; else if( m_MovesIndex &lt; m_FinishedMoves.Length ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using( Graphics gBmp = 
							Graphics.FromImage( m_bmp ) ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //draw over 
							old Ant position<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int addX = (m_Position.X 
							== 0 ? 1 : 2);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int addY = (m_Position.Y 
							== 0 ? 1 : 2);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // int cellX 
							= addX - 1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // int cellY 
							= addY - 1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if( 
							m_Position.X &gt; 0 ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ++addX;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if( 
							m_Position.X + 1 == m_Position.Width ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ++addX;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if( 
							m_Position.Y &gt; 0 ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ++addY;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // if( 
							m_Position.Y + 1 == m_Position.Height ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ++addY;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							gBmp.FillRectangle( Brushes.CornflowerBlue, 
							m_Position.X*m_CellDim + addX,</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							m_Position.Y*m_CellDim + addY, m_CellDim - (addX - 
							1), m_CellDim - (addY - 1) );<br>
							<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //move 
							appropriately and draw new Ant position<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch( 
							m_FinishedMoves[m_MovesIndex] ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							case Direction.Left: --m_Position.X; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							case Direction.Right: ++m_Position.X; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							case Direction.Up: --m_Position.Y; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							case Direction.Down: ++m_Position.Y; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addX = (m_Position.X 
							== 0 ? 1 : 2);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addY = (m_Position.Y 
							== 0 ? 1 : 2);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							gBmp.FillRectangle( Brushes.Crimson, m_Position.X*m_CellDim 
							+ addX,</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							m_Position.Y*m_CellDim + addY, m_CellDim - (addX - 
							1), m_CellDim - (addY - 1) );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
							<br>
&nbsp;&nbsp;&nbsp; //draw bitmap on graphics object, scaled to current size<br>
&nbsp;&nbsp;&nbsp; SizeF sizef = new SizeF( m_bmp.Width/m_bmp.HorizontalResolution,&nbsp;&nbsp;&nbsp;
							</p>
							<p style="margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
							m_bmp.Height/m_bmp.VerticalResolution );<br>
&nbsp;&nbsp;&nbsp; float scale = Math.Min( g.ClipBounds.Width/sizef.Width, 
							g.ClipBounds.Height/sizef.Height );<br>
&nbsp;&nbsp;&nbsp; sizef.Width *= scale;<br>
&nbsp;&nbsp;&nbsp; sizef.Height *= scale;<br>
&nbsp;&nbsp;&nbsp; g.DrawImage( m_bmp, 0, 0, sizef.Width, sizef.Height );<br>
							<br>
&nbsp;&nbsp;&nbsp; ++m_MovesIndex;<br>
&nbsp;&nbsp;&nbsp; return m_MovesIndex &lt; m_FinishedMoves.Length;<br>
							}</td>
						</tr>
					</table>
					<p style="margin-top: 0; margin-bottom: 0">&nbsp;</p>
					<p style="margin-top: 0; margin-bottom: 0" align="left">
					<font face="Arial">The Reset method returns the graphical 
					instance to the first frame.&nbsp; In other words, it resets 
					the picture to its initial state.</font></p>
					<p style="margin-top: 0; margin-bottom: 0" align="left">&nbsp;</p>
					<div align="center">
						<table border="0" width="90%" id="table8">
							<tr>
								<td><font face="Courier New" size="2">public 
								void Reset() {<br>
&nbsp;&nbsp;&nbsp; m_MovesIndex = -1;<br>
&nbsp;&nbsp;&nbsp; m_Grid.Reset();<br>
&nbsp;&nbsp;&nbsp; m_Position = null;<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp; if( m_bmp != null ) m_bmp.Dispose();<br>
&nbsp;&nbsp;&nbsp; m_bmp = null;<br>
								}</font></td>
							</tr>
						</table>
						<p align="left"><font face="Arial">The Artificial Ant's 
						Finish method is called when the  <span style="font-weight: 400">
                        IIndividual </span>is finished 
						being tested.&nbsp; This prevents more moves from being 
						made by the Ant and converts the moves into an array of 
						movement directions.</font></p>
						<div align="center">
							<table border="0" width="90%" id="table9">
								<tr>
									<td><font face="Courier New" size="2">public 
									void Finish() {<br>
&nbsp;&nbsp;&nbsp; m_FinishedMoves = new Direction[m_Moves.Count];<br>
&nbsp;&nbsp;&nbsp; m_Moves.CopyTo( m_FinishedMoves );<br>
&nbsp;&nbsp;&nbsp; m_Moves = null;<br>
									}</font></td>
								</tr>
							</table>
							<p align="left"><font face="Arial">Finally, the 
							direction enumeration specifies the directions the 
							Ant can move.</font></p>
							<div align="center">
								<table border="0" width="90%" id="table10">
									<tr>
										<td><font face="Courier New" size="2">
										public enum Direction {<br>
&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Move up in the grid.&lt;/summary&gt;<br>
&nbsp;&nbsp;&nbsp; Up = 0, <br>
&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Move to the right in the grid.&lt;/summary&gt;<br>
&nbsp;&nbsp;&nbsp; Right, <br>
&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Move down in the grid.&lt;/summary&gt;<br>
&nbsp;&nbsp;&nbsp; Down, <br>
&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;Move to the left in the grid.&lt;/summary&gt;<br>
&nbsp;&nbsp;&nbsp; Left, <br>
										};</font></td>
									</tr>
								</table>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
	<h4 class="dtH4"><font face="Arial">See Also</font></h4>
    <p><font face="Arial"><a href="Environment.htm">IEnvironment</a> |
    <a href="Individual.htm">IIndividual</a></font></p>
  <hr>
  <div id="footer">
    <font face="Arial">
    <a href="http://www.opensource.org/" target="_top">
    <img style="padding-bottom: 5px" src="http://opensource.org/trademarks/open_source_button.png" align="left" border="0"></a> 
    This software licensed under the
    <a href="http://opensource.org/licenses/afl-2.1.php" target="_top">Academic 
    Free License version 2.1</a>. (<a href="../../afl-2.1.txt">Plain 
    text</a>)</font></div>
</div>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -