Невозможно обновить переменную Kotlin внутри функции - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь построить игру Tic Tac Toe для Android.

Но когда я пытаюсь изменить активную игру.

Значение переменной activePlayer неизменить

fun buSelect(view:View){


    var butSelected = view as Button
    var callID = 0
    when(butSelected.id){
        R.id.bt1 -> callID = 1
        R.id.bt2 -> callID = 2
        R.id.bt3 -> callID = 3
        R.id.bt4 -> callID = 4
        R.id.bt5 -> callID = 5
        R.id.bt6 -> callID = 6
        R.id.bt7 -> callID = 7
        R.id.bt8 -> callID = 8
        R.id.bt9 -> callID = 9
    }

    //The Problem go from here
    var player1 = ArrayList<Int>()
    var player2 = ArrayList<Int>()
    var activePlayer:Int = 1

    fun PlayGame(callID:Int, butSelected:Button){

        if (activePlayer == 1){
            butSelected.text = "X"
            butSelected.setBackgroundResource(R.color.pink)
            player1.add(callID)
            activePlayer = 2
        }else{
            butSelected.text = "O"
            butSelected.setBackgroundResource(R.color.colorPrimaryDark)
            player2.add(callID)
            activePlayer = 1
        }

        butSelected.isEnabled = false

    }
    // until here
    PlayGame(callID, butSelected)
    }

И результат тестирования таков:

Test the code

1 Ответ

0 голосов
/ 23 января 2019

вы должны переместить var activePlayer:Int = 1 за пределы функции buSelect(view:View) и подумать, что вам нужно это как глобальная переменная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...