[FIX] Refactor entrée dans pendu pour code + lisible

RepositoryAndroid
Renaud BEURET 1 year ago
parent 5bf379ad61
commit d9ccdad5cb

@ -35,15 +35,7 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(),
{ {
Text(text = state.value.motATrou) Text(text = state.value.motATrou)
TextField(value = "", TextField(value = "",
onValueChange = { onValueChange = { onLetterEntered(it, viewModel, context, goToHome) },
if (it.isNotEmpty()) {
viewModel.PlayAction(it[0])
if ((!state.value.isWon) && (state.value.nbViesRestantes == 0)) {
goToHome()
} else if (state.value.isWon) {
Toast.makeText(context,"Vous avez gagné !",Toast.LENGTH_LONG).show()
}
}},
modifier = Modifier.padding(20.dp)) modifier = Modifier.padding(20.dp))
afficherVies(state.value.nbViesRestantes) afficherVies(state.value.nbViesRestantes)
Button(onClick = { viewModel.InitPartie() }) { Button(onClick = { viewModel.InitPartie() }) {
@ -53,6 +45,21 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(),
} }
} }
fun onLetterEntered(entered: String,
vm: PenduViewModel,
context: Context,
goToHome: () -> Unit) {
val state = vm.uiState
if (entered.isNotEmpty()) {
vm.PlayAction(entered[0])
if ((!state.value.isWon) && (state.value.nbViesRestantes == 0)) {
goToHome()
} else if (state.value.isWon) {
Toast.makeText(context,"Vous avez gagné !",Toast.LENGTH_LONG).show()
}
}
}
@Preview @Preview
@Composable @Composable
fun afficherVies(nbVies : Int = 10) { fun afficherVies(nbVies : Int = 10) {

Loading…
Cancel
Save