Gostaria de criar um loop para que esse jogo continuasse sendo executado até que o "i"atingisse a quarta posição de qualquer um dos arrays listados ali. No final o jogo deve zerar as pontuações e começar novamente. Também quero saber porque o jogo não marca as pontuações corretamente, ele para em 1 e não marca as pontuações. Obrigado
`class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private var finalResult = ""
private var i = 0
lateinit var userChoice: ImageView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val maqOptions = arrayOf(binding.maqPedra, binding.maqPapel, binding.maqTesoura)
val gameChoice = getGameChoice(maqOptions)
binding.humPedra.setOnClickListener {
userChoice = binding.humPedra
printResult(userChoice, gameChoice)
sumPoints()
}
binding.humPapel.setOnClickListener {
userChoice = binding.humPapel
printResult(userChoice, gameChoice)
sumPoints()
}
binding.humTesoura.setOnClickListener {
userChoice = binding.humTesoura
printResult(userChoice, gameChoice)
sumPoints()
}
}
fun getGameChoice(optionsParam: Array<ImageView>) =
optionsParam[((Math.random() * optionsParam.size).toInt())]
fun printResult(userChoice: ImageView, gameChoice: ImageView): String {
if ((userChoice == binding.humPedra && gameChoice == binding.maqTesoura) ||
(userChoice == binding.humPapel && gameChoice == binding.maqPedra) ||
(userChoice == binding.humTesoura && gameChoice == binding.maqPapel)
) {
binding.resultado.text = "Você venceu"
finalResult = "Você venceu"
} else if ((userChoice == binding.humPedra && gameChoice == binding.maqPedra) ||
(userChoice == binding.humPapel && gameChoice == binding.maqPapel) ||
(userChoice == binding.humTesoura && gameChoice == binding.maqTesoura)
) {
binding.resultado.text = "Empatado"
finalResult = "Empatado"
} else {
binding.resultado.text = "Você perdeu"
finalResult = "Você perdeu"
}
return finalResult
}
private fun sumPoints() {
val humLimite = arrayOf("1", "2", "3", "4", "5")
val maqLimite = arrayOf("1", "2", "3", "4", "5")
val humPontua = humLimite[i]
val maqPontua = maqLimite[i]
if(finalResult == "Empatado") {
binding.maqResult.text = maqPontua
binding.humResult.text = humPontua
i+=i
} else if (finalResult == "Você venceu") {
binding.humResult.text = humPontua
i+=i
} else {
binding.maqResult.text = maqPontua
i+=i
}
}
}
`