1

チェスのゲームでは、敵の駒で攻撃可能な相手を探します。ボードの表現は、多次元配列を介して行われます。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]存在しなければ、作品を見つけられなかったでしょう。

4

1 に答える 1

0

文字列キャストの問題である可能性があります

試す

alert( 
    veld(attackerRow,attackerCol)
    + " pos att op veld "
    + veld(((attackerRow*1) + (i * rowStep)), ((attackerCol*1) + (i * colStep))));

aPossibleAttackers[search_dir] = i; // searchdirection and distance, OK
ti = (attackerRow*1) + (i * rowStep); // OK
tj = (attackerCol*1) + (i * colStep); // OK
//aPossibleAttackers[ti][tj] = board[ti][tj]; // not possible????
alert("test2 ti= " + ti + " tj=" + tj + " ?? " + aPossibleAttackers);

ただの推測

于 2014-05-06T13:05:26.580 に答える