fun main() {
    var cnt = 1 // 몇 번째 판인지
    var player = "O"    // 플레이어 1: O, 플레이어 2: X (말을 놓을 때 쉽게 놓기 위해 변수 선언)
    var playerInt = 1   // 플레이어
    var placeArr: Array<Array<String>> = arrayOf(arrayOf(" "," "," "), // 말을 놓는 판
        arrayOf(" "," "," "),
        arrayOf(" "," "," "))
    while(true) {
        println("$cnt 번째 턴")
        printBoard(placeArr)    // 판을 그리는 메서드
        print("Player $playerInt 입력(줄,칸) : ")
        val input: String? = readLine() // 입력
        val inputArray: List<String>? = input?.split(",")     // 입력 arr로 배치
        placeArr[inputArray!!.get(1)!!.toInt()-1][inputArray!!.get(0)!!.toInt()-1] = player // 입력한 위치에 말을 놓은
        cnt++
        if (whoWin(placeArr)==true) {   // 승리 판정 메서드
            println("Player $playerInt 승리!")
            break
        }
        if (cnt%2==1) {     // 한 경기가 끝나면 플레이어 바꿈
            player = "O"
            playerInt = 1
        } else {
            player = "X"
            playerInt = 2
        }
    }
}
fun printBoard(array: Array<Array<String>>){
    for(i in 0..2){
        print("$i ")
        for(j in 0..2){
            print(array[i][j])
            if (j!=2)
                print("|")
        }
        println()
        if (i!=2)
            println("  -+-+-")
    }
}
fun whoWin(array: Array<Array<String>>):Boolean {
    var win = false // false: lose, true: win
    for(i in 0 .. 2){
        // 열 일치
        if(array[0][i]==array[1][i]&&array[0][i]==array[2][i]&&array[0][i]!=" ")
            return true
        // 행 일치
        else if(array[i][0]==array[i][1]&&array[i][0]==array[i][2]&&array[i][0]!=" ")
            return true
        // 대각선 일치
    }
    if(array[0][0]==array[1][1]&&array[0][0]==array[2][2]&&array[0][0]!=" ")
        return true
    if(array[2][0]==array[1][1]&&array[2][0]==array[0][2]&&array[0][2]!=" ")
        return true
    return false
}
                 
            
             
comment