Создайте 2d Array для игры-лабиринта с Kotlin - PullRequest
0 голосов
/ 07 июня 2019

Итак, у меня есть класс с именем 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

}

1 Ответ

1 голос
/ 07 июня 2019

Вы определили тип ваших ячеек как 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()})})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...