迷路探索に必要な変数、配列について。
区画情報
マウス大会の迷路は、16*16マスで構成されており、
マウスはこの迷路の区画の壁情報を取得しなければならない。
なので、配列を用いてメモリマップを作成する。
↑の図のようなメモリマップになるので、マウスの初期位置は[F0]となり、
ゴール区画は [77] [ 78] [87][88]となる。またメモリマップから位置情報の更新は
↓に書いた位置の管理のようにする必要がある。
また、16*16の配列の中には、壁の状態を取得するわけだが、
壁の状態は、壁の有無、その区画は未知か、既知かの情報を入力する。
例えば、東に壁があり、西の区画が既知だったとしたら、
となり、0x84として、区画の情報を表せます。
*前に誰かに聞かれたけど、配列は多重配列である必要はない。
(うっかり多重でいいんじゃない?とか言ったような気がするので・・・)
方向の管理
壁情報を絶対的方角で管理するのに対し、マウス自身の方向は相対的に変化させなければいけません。
なので、方角への割り当てを決めて置くことで、把握しやすくします。
*配った資料が北西南東なのに対し、今書いてるのが北南西東なのはみやすくするため。
間違わないように気をつけてくだされ。まぎらわしぃんで。
位置の管理
ポインタ操作でメモリマップ内でマウスの位置情報を更新します。
メモリマップの構成上位置操作は下のようになります。
区画情報
マウス大会の迷路は、16*16マスで構成されており、
マウスはこの迷路の区画の壁情報を取得しなければならない。
なので、配列を用いてメモリマップを作成する。
↑の図のようなメモリマップになるので、マウスの初期位置は[F0]となり、
ゴール区画は [77] [ 78] [87][88]となる。またメモリマップから位置情報の更新は
↓に書いた位置の管理のようにする必要がある。
また、16*16の配列の中には、壁の状態を取得するわけだが、
壁の状態は、壁の有無、その区画は未知か、既知かの情報を入力する。
例えば、東に壁があり、西の区画が既知だったとしたら、
壁の有無 | 区画の未知、既知 |
東 | 西 | 南 | 北 | 東 | 西 | 南 | 北 |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
となり、0x84として、区画の情報を表せます。
*前に誰かに聞かれたけど、配列は多重配列である必要はない。
(うっかり多重でいいんじゃない?とか言ったような気がするので・・・)
方向の管理
壁情報を絶対的方角で管理するのに対し、マウス自身の方向は相対的に変化させなければいけません。
なので、方角への割り当てを決めて置くことで、把握しやすくします。
方向 | 値 | 値(二進数) |
北 | 0x11 | 0001,0001 |
南 | 0x44 | 0100,0100 |
西 | 0x22 | 0010,0010 |
東 | 0x88 | 1000,1000 |
*配った資料が北西南東なのに対し、今書いてるのが北南西東なのはみやすくするため。
間違わないように気をつけてくだされ。まぎらわしぃんで。
位置の管理
ポインタ操作でメモリマップ内でマウスの位置情報を更新します。
メモリマップの構成上位置操作は下のようになります。
北 | 位置‐0x10 |
南 | 位置+0x10 |
西 | 位置‐0x01 |
東 | 位置+0x01 |
添付ファイル