フィールド状態を表す2次配列 f[y][x]が -1(空)の場合、
1(x1,y1)をy方向へ進める。但し、1が進む先に2(x2,y2)がいた場合はその手前まで進む のような
プログラムを組みたいのですが、以下のような条件式にすると1と2のx座標が違う時も、いつも手前で止まります
(当然、そうなるのは判ります)。
なので、
f[y][x]が -1(空)の場合、x1とx2が同じかつ、1が進む先yに2がいない場合、1をy方向へ進める。
と言うのを「直観的」に書くと以下の様になりました。が、こちらも1と2のx座標が違う場合、一切進みません。
(当然の様な気もしますが、この辺りで頭がおかしくなります)。
このような条件の場合は、以下の様に書くしかないのでしょうか。
for(int i=0; i<20; i+;){
if (f[y1 + 1][x1] == -1){
y1++;
if ((x1 == x2) && (y1 + 1) != y2 ) y1--;
}
}
もう少しスマートな書き方にしたいのですが、
ご教示の程、よろしくお願い致します。