我正在为Discord.js应用程序制作Connect 4游戏。我将游戏板保留为字符串的 2D 数组并像这样初始化它:
var board:string[][] = new Array<Array<string>>();
function resetBoard():void {
for(let i=0; i<numRows; i++){
board[i] = new Array<string>();
for(let j=0; j<cols; j++){
board[i].push(" ");
}
}
}
但是,当我尝试访问板的一部分时,它会抛出错误"无法读取未定义的属性'0'"。
function whatsAtPos(row, col){
return board[row][col];
}
所有函数都在同一个文件中,board[][] 是一个全局变量。我已经尝试了一切来修复它,但我不知道发生了什么。
我建议你:
- 验证您在调用 whatsAtPos 之前调用了 resetBoard((
- 验证在重置板"numRows"时,您使用的"cols"是否在调用之前是常量或不更改
- 添加验证: 函数
whatsAtPos
关于类型的参数,并在函数期间验证行的值,col 将在 [0, numRows-1]、[0, cols-1] 的范围内