coin

coin

Daniyar Mukhanov
package com.example.coinflipper

import android.os.Bundle
import android.os.CountDownTimer
import android.widget.Button
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat


class MainActivity : AppCompatActivity() {
    val flipButton by lazy { findViewById<Button>(R.id.button) }
    val image by lazy { findViewById<ImageView>(R.id.coin) }
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val coin = LuckyCoin()

        flipButton.setOnClickListener {
            val x = coin.spin()
            it.isEnabled = false
            var mode = 0
            object : CountDownTimer(2000, 200) {
                override fun onTick(millisUntilFinished: Long) {
                    when (mode % 4) {
                        0 -> {
                            setAverse()
                            mode++
                        }
                        1 -> {
                            setHalfAverse()
                            mode++
                        }
                        2 -> {
                            setReverse()
                            mode++
                        }
                        3 -> {
                            setHalfReverse()
                            mode++
                        }
                    }
                }

                override fun onFinish() {
                    if (x == 0) setReverse() else setAverse()
                    flipButton.text = "Flip"
                    it.isEnabled = true
                }
            }.start()


        }
    }

    private fun setReverse() {
        image.setImageDrawable(ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_revers))
    }

    private fun setAverse() {
        image.setImageDrawable(ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_avers))
    }

    private fun setHalfAverse() {
        image.setImageDrawable(ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_avers_2))
    }

    private fun setHalfReverse() {
        image.setImageDrawable(ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_revers_2))
    }

}

class LuckyCoin {
    fun spin(): Int {
        return (0..1).random()
    }
}


Report Page