android - 使用 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
}
解决方案
您将单元格类型定义为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()})})
推荐阅读
- android - 如何使用 python 控制你的 Android/iOS 设备?
- unity3d - 为什么在 Unity 中静音如此困难?
- r - 在 R 中使用 Perl 正则表达式进行抓取
- matlab - ind2sub 在 3D 数组中查找值
- python - Python 中的 Mac OS、打开、刷新连接、保存和关闭 Excel 文件
- r - R Markdown message=FALSE 仍然会发出警告
- javascript - Google Maps Geometry Library:如何创建处于拖动状态的标记
- python - ModuleNotFoundError:没有名为“darkflow”的模块
- java - 从 JDateChooser 中选择的日期增量
- javascript - 等待所有文件更新,然后下载它们