[FIX] Jouer majuscule = Jouer minuscule

RepositoryAndroid
Renaud BEURET 1 year ago
parent d9ccdad5cb
commit a8a5925009

@ -39,21 +39,25 @@ class PenduViewModel : ViewModel() {
// mot : mot à trouver // mot : mot à trouver
// motAct : état actuel du mot trouvé par l'utilisateur // motAct : état actuel du mot trouvé par l'utilisateur
fun PlayAction(lettre: Char) { fun PlayAction(lettre: Char) {
val lowerCaseLetter = lettre.lowercaseChar()
Log.d("PenduViewModel","Un utilisateur joue une action") Log.d("PenduViewModel","Un utilisateur joue une action")
if (lettre == ' ' || uiState.value.motATrou.contains(lettre)) { if (lettre == ' ' || uiState.value.lettresUtilises.contains(lowerCaseLetter)) {
Log.d("PenduViewModel","L'utilisateur a fait une action invalide") Log.d("PenduViewModel","L'utilisateur a fait une action invalide")
uiState.value = PenduUIState(false, uiState.value = PenduUIState(false,
false, false,
uiState.value.nbViesRestantes, uiState.value.nbViesRestantes,
uiState.value.motATrouver, uiState.value.motATrouver,
uiState.value.motATrou uiState.value.motATrou,
uiState.value.lettresUtilises
) )
} else if (uiState.value.motATrouver.contains(lettre)) { return
} else if (uiState.value.motATrouver.lowercase().contains(lowerCaseLetter)) {
Log.d("PenduViewModel","L'utilisateur a trouvé une lettre") Log.d("PenduViewModel","L'utilisateur a trouvé une lettre")
var nvMotATrou = uiState.value.motATrou var nvMotATrou = uiState.value.motATrou
for (index in uiState.value.motATrouver.indices) { for (index in uiState.value.motATrouver.indices) {
if (uiState.value.motATrouver[index] == lettre) { val letterToCheck = uiState.value.motATrouver[index]
nvMotATrou = nvMotATrou.replaceRange(index,index + 1, lettre.toString()) if (letterToCheck.lowercaseChar() == lowerCaseLetter) {
nvMotATrou = nvMotATrou.replaceRange(index,index + 1, letterToCheck.toString())
} }
} }
var isWon = false var isWon = false
@ -64,7 +68,8 @@ class PenduViewModel : ViewModel() {
true, true,
uiState.value.nbViesRestantes, uiState.value.nbViesRestantes,
uiState.value.motATrouver, uiState.value.motATrouver,
nvMotATrou nvMotATrou,
uiState.value.lettresUtilises.plus(lowerCaseLetter)
) )
} else { } else {
Log.d("PenduViewModel","L'utilisateur s'est trompé de lettre") Log.d("PenduViewModel","L'utilisateur s'est trompé de lettre")
@ -72,7 +77,8 @@ class PenduViewModel : ViewModel() {
true, true,
uiState.value.nbViesRestantes - 1, uiState.value.nbViesRestantes - 1,
uiState.value.motATrouver, uiState.value.motATrouver,
uiState.value.motATrou uiState.value.motATrou,
uiState.value.lettresUtilises.plus(lowerCaseLetter)
) )
} }
} }

@ -5,5 +5,6 @@ data class PenduUIState(
val isActionGood: Boolean = false, val isActionGood: Boolean = false,
val nbViesRestantes: Int = 10, val nbViesRestantes: Int = 10,
val motATrouver: String = "Mot", val motATrouver: String = "Mot",
val motATrou: String = "___" val motATrou: String = "___",
val lettresUtilises: String = ""
) )

@ -41,6 +41,7 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(),
Button(onClick = { viewModel.InitPartie() }) { Button(onClick = { viewModel.InitPartie() }) {
Text(text = stringResource(id = R.string.reset_game)) Text(text = stringResource(id = R.string.reset_game))
} }
Text("Lettres utilisées: " + state.value.lettresUtilises)
} }
} }
} }

Loading…
Cancel
Save