Как я могу сравнить 2 изображения в ImageView, чтобы выполнить какое-то действие, если на экране изображен крот

У моём приложение есть 9 ImageView введите сюда описание изображения

Я сделал чтобы через несколько секунд на экране появлялся кротвведите сюда описание изображения

мне нужно чтобы при нажатии на крота в счетчик шло значение +1.

есть 2 функции setBlackHole устанавливает все изображения черные, а setMoleImage рандомно показывает крота и при нажатии на него добавляет +1

    fun setBlackHole() {
    var listImage = mutableListOf(im1, im2, im3, im4, im5, im6, im7, im8, im9)
    if (isAdded() && activity != null) {
        for (i in listImage.indices) {
            var blackhole = listImage[i]
            blackhole.setImageResource(R.drawable.ic_hole1)
        }
    }
}

fun setMoleImage() {
    var listImage = mutableListOf(im1, im2, im3, im4, im5, im6, im7, im8, im9)
    val random = Random
    var setImageMoleRandom = listImage[random.nextInt(listImage.size)]
    if (isAdded() && activity != null) {
        setImageMoleRandom.setImageResource(R.drawable.ic_mole)
        for (i in listImage.indices){
            var setImage = listImage[i]
            setImage.setOnClickListener {
                if (setImage.drawable.constantState == APP_ACTIVITY.resources.getDrawable(R.drawable.ic_mole).constantState){
                    txt_scrore_subtitle.text = score.toString()
                    score = score + 1
                    saveScore()
                    Log.d(LOG_TAG, "GO GO POWER RANGERS")
                }
            }
        }
    }
}

Ответы (1 шт):

Автор решения: HackModLife

Можно задать сетку состояния поля в виде двумерного массива из Boolean переменных, и одновременно изменяя состояния поля - перерисовывать нужные ImageView.

Вот пример проекта где решается этот кейс похожим образом

Возможно не самое изящное решение, но очень наглядное

→ Ссылка