对于象棋游戏,我搜索敌人棋子上可能的攻击者。板表示是通过多维数组完成的。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]
确实存在,否则我不会找到一块
可能是字符串强制转换问题
试
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);
只是猜测