首页 > 解决方案 > 使用 Kotlin 为迷宫游戏创建 2d 数组

问题描述

所以我有一个名为 Cell 的类,我想创建一个对象矩阵 Cell 但我卡住了,迷路了,这就是我到目前为止得到的,它不起作用

我该如何以正确的方式做到这一点?谢谢

class GameView(context: Context?, attrs: AttributeSet?) : 
View(context, attrs) {

private val COLS:Int = 7
private val ROWS: Int = 10


fun createMaze(){

    //this gives me an error Type inference failed. Expected type 
    //mismatch: 
    //required:
    //Array<Array<Cell>>
    //found:
    //Array<IntArray>

    var cells: Array<Array<Cell>>  = Array(COLS, {IntArray(ROWS)})

    for(x in 0..COLS){
        for(y in 0..ROWS){
            cells[x][y] = Cell(x,y)
        }
    }

}

}

class Cell(var col:Int, var row: Int){
    var topWall = true
    var leftWall = true
    var bottomWall = true
    var rightWall = true

}

标签: androidarraysclassmatrixkotlin

解决方案


您将单元格类型定义为Array<Array<Cell>>,但初始化为Array<IntArry>

我认为只有一个小变化:

   class Cell(var col:Int=0, var row: Int=0){
        var topWall = true
        var leftWall = true
        var bottomWall = true
        var rightWall = true

    }
   var cells: Array<Array<Cell>>  = Array(COLS, {Array<Cell>(ROWS, {Cell()})})

推荐阅读