| 移動可能範囲計算 |
|---|
| 参考文献(いきなり) |
|---|
| はじめに(基礎) |
|---|
| サンプルプログラム |
|---|
void calcMove( int x, int y, int m )
{
if( data[ y ][ x ] >= m ) return;
data[ y ][ x ] = m;
if( y > Y_MIN ) calcMove( x, y - 1, m-wait[y-1][x] );
if( y < Y_MAX ) calcMove( x, y + 1, m-wait[y+1][x] );
if( x > X_MIN ) calcMove( x - 1, y, m-wait[y][x-1] );
if( x < X_MAX ) calcMove( x + 1, y, m-wait[y][x+1] );
}
|
void calcMove( int x, int y, int m ) |
if( data[ y ][ x ] >= m ) return;
|
data[ y ][ x ] = m;
|
if( y > Y_MIN ) calcMove( x, y - 1, m-wait[y-1][x] );
if( y < Y_MAX ) calcMove( x, y + 1, m-wait[y+1][x] );
if( x > X_MIN ) calcMove( x - 1, y, m-wait[y][x-1] );
if( x < X_MAX ) calcMove( x + 1, y, m-wait[y][x+1] );
|
| 最短経路の検索 |
|---|