[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
// motAct : état actuel du mot trouvé par l'utilisateur
fun PlayAction(lettre: Char) {
val lowerCaseLetter = lettre.lowercaseChar()
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")
uiState.value = PenduUIState(false,
false,
uiState.value.nbViesRestantes,
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")
var nvMotATrou = uiState.value.motATrou
for (index in uiState.value.motATrouver.indices) {
if (uiState.value.motATrouver[index] == lettre) {
nvMotATrou = nvMotATrou.replaceRange(index,index + 1, lettre.toString())
val letterToCheck = uiState.value.motATrouver[index]
if (letterToCheck.lowercaseChar() == lowerCaseLetter) {
nvMotATrou = nvMotATrou.replaceRange(index,index + 1, letterToCheck.toString())
}
}
var isWon = false
@ -64,7 +68,8 @@ class PenduViewModel : ViewModel() {
true,
uiState.value.nbViesRestantes,
uiState.value.motATrouver,
nvMotATrou
nvMotATrou,
uiState.value.lettresUtilises.plus(lowerCaseLetter)
)
} else {
Log.d("PenduViewModel","L'utilisateur s'est trompé de lettre")
@ -72,7 +77,8 @@ class PenduViewModel : ViewModel() {
true,
uiState.value.nbViesRestantes - 1,
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 nbViesRestantes: Int = 10,
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() }) {
Text(text = stringResource(id = R.string.reset_game))
}
Text("Lettres utilisées: " + state.value.lettresUtilises)
}
}
}

Loading…
Cancel
Save