右手法とは、迷路を攻略する方法の一つです。迷路の中で、現在地点とゴールはつながっているわけだから、右手の壁伝いに行けば必ずゴールにたどり着けるじゃん!という考え方です。「左手法」もありますが、考え方は同じです。
以前書いた記事もご参考ください。
・Processingで絵を書く
・○×ゲームを作る (1) ステージを作る
・○×ゲームを作る (2) 2次元配列を使う
・○×ゲームを作る (3) コンピュータ側のプログラムをつくる
・○×ゲームを作る (4) 勝敗を判定する
・○×ゲームを作る (5) 思考ルーチンを賢く
・○×ゲームを作る (6) 仕上げ
まずはProcessingで迷路を作りましょう。1 と 0 の 20 × 20 の二次元配列を作ります。値の並べ方は適当です。二次元配列については、以前書いた 「○×ゲームを作る (2)」 もご参考ください。
int map[][] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,2,1},
{1,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,0,1,0,1},
{1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,0,1},
{1,0,0,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0,0,0,1,1,1,1,0,1,1,1,0,1},
{1,0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,1,0,1},
{1,1,1,0,1,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1},
{1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1},
{1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1},
{1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,2,1},
{1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1,0,1,0,1},
{1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,1},
{1,0,0,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1},
{1,0,1,0,1,0,1,0,0,0,1,1,1,1,0,1,1,1,0,1},
{1,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1},
{1,1,1,0,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1},
{1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1},
{1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
この時点で実行ボタンを押しても何もおきません。以下のコードを書いて、値が 1 の場合は黒い四角で塗りつぶします。それ以外の 0 の場合には何もしてませんが、 setup() 関数で背景を白にしているので、0 は白い四角として表示されます。
void setup(){
size(400,400);
background(255);
}
void draw(){
for(int i = 0; i < 20; i ++){
for(int j = 0; j < 20; j ++){
if (map[j][i] == 1){
fill(0);
rect(i*20, j*20, 20, 20);
}
}
}
}
これを実行すると、以下のような白黒のマップが表示されます。

次回はキャラクターを表示させましょう。