Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何将(board2D:Array<;IntArray>;)转换为GUI Kotlin/AndroidStuido_User Interface_Kotlin_Logic - Fatal编程技术网

User interface 如何将(board2D:Array<;IntArray>;)转换为GUI Kotlin/AndroidStuido

User interface 如何将(board2D:Array<;IntArray>;)转换为GUI Kotlin/AndroidStuido,user-interface,kotlin,logic,User Interface,Kotlin,Logic,我真的需要尝试如何从我现有的代码创建GUI。 我不知道如何开始。 我现有的代码在控制台日志中创建了一个8x8的文本,数字为1/2,解决了8皇后难题。(1是皇后2是占位符) 实际创建了一个包含8个ImageView的8个TableRows的GridLayout fun main() { val board2D = Array(8) { IntArray(8) } computeQueens(board2D, xQueen = 0, yQueen = 0, numberOfQuee

我真的需要尝试如何从我现有的代码创建GUI。 我不知道如何开始。 我现有的代码在控制台日志中创建了一个8x8的文本,数字为1/2,解决了8皇后难题。(1是皇后2是占位符) 实际创建了一个包含8个ImageView的8个TableRows的GridLayout


fun main() {
    val board2D = Array(8) { IntArray(8) }
    computeQueens(board2D, xQueen = 0, yQueen = 0, numberOfQueens = 0)
}

fun printBoardState(board2D: Array<IntArray>) {
    for (y in 0..7) {
        for (x in 0..7) {
            print("${board2D[y][x]} ")
        }
        println()
    }
    println()
}

fun putQueen(board: Array<IntArray>, xQueen: Int, yQueen: Int) {
    for (x in 0..7) {
        board[yQueen][x] = 2
        for (y in 0..7) {
            board[y][xQueen] = 2
        }
    }
    for (xD in 0..7) {
        for (yD in 0..7) {
            val diagoX = xQueen - xD    //Diagonal oben links unten rechts
            val diagoY = yQueen - yD    //Diagonal oben links unten rechts
            val diago = diagoX + diagoY //Diagonal unten links oben rechts
            if (diagoX == diagoY) {
                board[yD][xD] = 2
            }
            if (diago == 0) {
                board[yD][xD] = 2
            }
        }
    }
    board[yQueen][xQueen] = 1
}

fun getBoardCopy(board: Array<IntArray>): Array<IntArray> {
    return board.map {
        it.copyOf()

    }.toTypedArray()
}

fun computeQueens(
    board2D: Array<IntArray>,
    xQueen: Int,
    yQueen: Int,
    numberOfQueens: Int
): Boolean {
    if (numberOfQueens == 8) {
        printBoardState(board2D)
        return true
    }
    var tempXQueen = xQueen
    for (y in yQueen..7) {
        for (x in tempXQueen..7) {
            if (board2D[y][x] == 0) {
                val board2DCopy = getBoardCopy(board2D)
                putQueen(board2DCopy, x, y)
                val isSuccess = computeQueens(board2DCopy, x, y, numberOfQueens + 1)
                if (isSuccess) {
                    return true
                }
            }
        }
        tempXQueen = 0
    }
    return false
}


主要内容(){
val board2D=数组(8){IntArray(8)}
computeQueens(board2D,xQueen=0,yQueen=0,numberOfQueens=0)
}
有趣的printBoardState(board2D:Array){
对于(0..7中的y){
对于(0..7中的x){
打印(${board2D[y][x]})
}
println()
}
println()
}
趣味putQueen(棋盘:阵列,xQueen:Int,yQueen:Int){
对于(0..7中的x){
董事会[yQueen][x]=2
对于(0..7中的y){
董事会[y][xQueen]=2
}
}
用于(0..7中的xD){
对于(0..7中的yD){
val diagoX=xQueen-xD//未连接的对角oben链路
val diagoY=yQueen-yD//未连接的对角oben链路
val diago=diagoX+diagoY//对角未连接连接oben rechts
if(diagoX==diagoY){
板[yD][xD]=2
}
如果(diago==0){
板[yD][xD]=2
}
}
}
董事会[yQueen][xQueen]=1
}
趣味getBoardCopy(板:阵列):阵列{
返回板.map{
it.copyOf()
}.toTypedArray()
}
有趣的电脑皇后(
board2D:数组,
xQueen:Int,
yQueen:Int,
皇后数:Int
):布尔值{
如果(numberOfQueens==8){
printBoardState(board2D)
返回真值
}
var tempXQueen=xQueen
对于(y中的y皇后..7){
适用于(tempXQueen..7中的x){
if(board2D[y][x]==0){
val board2DCopy=getBoardCopy(board2D)
putQueen(董事会复印件,x,y)
val isSuccess=computeQueens(Board2Copy,x,y,numberOfQueens+1)
如果(isSuccess){
返回真值
}
}
}
tempXQueen=0
}
返回错误
}
我的实际GUI的图片: