【问题标题】:Acessing elements in jagged arrays访问交错数组中的元素
【发布时间】:2019-12-03 17:42:12
【问题描述】:

我开始编写一个打印在控制台中的递归回溯迷宫系统,但我已经遇到了一个小问题,我无法从我的网格结构中设置线条,如下所示:

console.log("Teste de Labirinto - Recursive Backtracking")

let grid = []
let cells = []

const width = 8
const height = 10

for (let i = 0; i < width; i++){
    cells.push(".")
}
for (let j = 0; j < height; j++){
    grid.push(cells)
}

function printMaze(){
    let line = " "
    for (let j = 0; j < height; j++) {
        for (let i = 0; i < width; i++) {
            line += " " + grid[j][i] + "  "
        }
        console.log(line)
        line = " "
    }
}

function createMazeBorder() {
    for (let j = 0; j < height; j++) {
        for (let i = 0; i < width; i++) {
            if(i == 0) {
                grid[j][i] = "X"
            }
        }
    }
}

createMazeBorder()
printMaze()

如何在网格中创建“X”墙?我尝试了所有的“ifs”,并交换了“i”和“j”,宽度,高度,仍然无法做到......谢谢你的时间。

【问题讨论】:

  • 我不明白你的问题。从我看到的情况来看,您已经在网格的左侧打印了一堵 X 墙。
  • 我解决了,我应该编辑、回答我自己的问题还是删除它?这是我的第一个问题,谢谢时间
  • 您可以回答自己的问题并接受它,以便解决其他问题。也许它可以帮助某人。
  • 谢谢,我会这样做的...无论如何,我的问题出在 grid.push(cells) 中,其中单元格没有再次实例化,所以我在网格中的所有单元格都得到了相同的引用跨度>

标签: javascript arrays jagged-arrays


【解决方案1】:

好吧,解决了,无法创建墙,因为我所有的单元格都有相同的引用,代码如下:

console.log("Teste de Labirinto - Recursive Backtracking")

let grid = []

const width = 8
const height = 10

for (let j = 0; j < height; j++){
    let cells = [];
    for (let i = 0; i < width; i++){
        cells.push(".")
    }
    grid.push(cells)
}

function printMaze(){
    let line = " "
    for (let j = 0; j < height; j++) {
        for (let i = 0; i < width; i++) {
            line += " " + grid[j][i] + "  "
        }
        console.log(line)
        line = " "
    }
}

function createMazeBorder() {
    for (let j = 0; j < height; j++) {
        for (let i = 0; i < width; i++) {
            if(j == 0 || i == 0 || j == height-1 || i == width-1) {
                grid[j][i] = "X"
            }
        }
    }
}

createMazeBorder()
printMaze()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多