Как получить последнюю кнопку одним нажатием кнопки player1 или player2 - PullRequest
0 голосов
/ 17 ноября 2018
class MainActivity : AppCompatActivity() {
    enum class PLAYINGPLAYER {
        FIRST_PLAYER,
        SECOND_PLAYER
    }

    var playingplayer: PLAYINGPLAYER? = null
    var buttonClicked:ArrayList<Int> = ArrayList()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        playingplayer = PLAYINGPLAYER.FIRST_PLAYER
    }

    fun imgButtonClicked(v: View) {
        val btnselected = v as Button
        var optionNumber = 0

        when (btnselected.id) {
            R.id.btn1 -> optionNumber = 1
            R.id.btn2 -> optionNumber = 2
            R.id.btn3 -> optionNumber = 3
            R.id.btn4 -> optionNumber = 4
            R.id.btn5 -> optionNumber = 5
            R.id.btn6 -> optionNumber = 6
        }

        action(optionNumber, btnselected)
    }

    var button1Click = ArrayList<Button>()
    var button2Click = ArrayList<Button>()

    fun action(optionNumber: Int, btnselected: Button) {
        if (playingplayer == PLAYINGPLAYER.FIRST_PLAYER) {
            btnselected.setBackgroundColor(Color.GREEN)
            buttonClicked.add(optionNumber)
            btnselected.isEnabled = false
            button1Click.add(btnselected)
            playingplayer = PLAYINGPLAYER.SECOND_PLAYER
        }
        else if (playingplayer == PLAYINGPLAYER.SECOND_PLAYER) {
            btnselected.setBackgroundColor(Color.RED)
            buttonClicked.add(optionNumber)
            btnselected.isEnabled = false
            button2Click.add(btnselected)
            playingplayer = PLAYINGPLAYER.FIRST_PLAYER
        }
        imagebtnState()
    }

    fun imagebtnState() {
        val btnLast = buttonClicked.get(buttonClicked.size - 1)

        if (buttonClicked.contains(1) && buttonClicked.contains(2)) {
            if ( btnLast == ??? player1 ) {
                imgbBtnBackground.setImageResource(R.drawable.rca)
            }
        }
        else if (buttonClicked.contains(1) && buttonClicked.contains(2)) {
            if ( btnLast == ??? player2 ) {
                imgbBtnBackground.setImageResource(R.drawable.wac)
            }
        }
    }
}

У меня два игрока и несколько кнопок.Player1 нажимает на кнопку, а player2 нажимает на другую кнопку.Когда игроки нажимают несколько определенных?, Я хочу изменить фон imageButton.

В (btnLast = ???), что я положил, чтобы получить последний щелчок в (buttonClicked.contains (1) && buttonClicked.contains (2)) это игрок1 или игрок2.

1 Ответ

0 голосов
/ 18 ноября 2018

Предполагая, что у вас только когда-нибудь будет два игрока, создайте логическое значение с именем var playerOneLastClicked = true, и если один щелчок игрока установит true, иначе, если два щелчка игрока установит false

if (buttonClicked.contains(1) && buttonClicked.contains(2)) {
    if (playerOneLastClicked) {
        imgbBtnBackground.setImageResource(R.drawable.rca)
    } else {
        imgbBtnBackground.setImageResource(R.drawable.wac)
    }
}

Поскольку вызывается imagebtnState()после каждого нажатия на самом деле не имеет значения проверять, кто щелкнул последним в arrayList, так как метод проверяет, были ли нажаты указанные кнопки в любом случае

Я думаю, это то, что вы спрашивалидля

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