チェスのゲームでは、敵の駒で攻撃可能な相手を探します。ボードの表現は、多次元配列を介して行われます。board[i][j]
ここで、i = 行、j は列 (つまり 8x8) で、値はピース自体です。
可能性のある攻撃者を検索するときに、新しい配列を作成したいaPossibleAttackers[i][j]
var aPossibleAttackers = []; // create array
var ti,tj; // temp row/col
考えられるすべての方向 (0 ~ 7) で検索を行い、最初に出会うピースを探します。したがって、方向と距離は既知です。次に、これがどのフィールドであるかを計算し、対応する値を から にコピーしboard[i][j]
ますaPossibleAttackers[i][j]
。しかし、それは機能していません。
コード:
alert( veld(attackerRow,attackerCol) + " pos att op veld " + veld((attackerRow + (i * rowStep)), (attackerCol + (i * colStep))));
aPossibleAttackers[search_dir] = i; // searchdirection and distance, OK
ti = attackerRow + (i * rowStep); // OK
tj = attackerCol + (i * colStep); // OK
//aPossibleAttackers[ti][tj] = board[ti][tj]; // not possible????
alert("test2 ti= " + ti + " tj=" + tj + " ?? " + aPossibleAttackers);
私は何を間違っていますか?? board[i][j]
存在しなければ、作品を見つけられなかったでしょう。