diff --git a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt index a54f7e1..a13413b 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt @@ -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) ) } } diff --git a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt index 9a5f6e6..369fbed 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt @@ -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 = "" ) diff --git a/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt b/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt index 8112688..0ead09d 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt @@ -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) } } }