From 042f9399afd5074a9e429af4cb6ae775c2915e56 Mon Sep 17 00:00:00 2001 From: Renaud BEURET Date: Thu, 28 Mar 2024 08:43:37 +0100 Subject: [PATCH] =?UTF-8?q?[FIX]=20D=C3=A9placer=20logique=20dans=20ViewMo?= =?UTF-8?q?del?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sciencequest/ViewModels/PenduVIewModel.kt | 39 +++++++++++++++++++ .../ViewModels/UiStates/PenduUIState.kt | 9 ++--- .../iut/sciencequest/model/buisness/Pendu.kt | 31 --------------- 3 files changed, 43 insertions(+), 36 deletions(-) create mode 100644 android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduVIewModel.kt delete mode 100644 android/app/src/main/java/fr/iut/sciencequest/model/buisness/Pendu.kt 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 new file mode 100644 index 0000000..52fc848 --- /dev/null +++ b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduVIewModel.kt @@ -0,0 +1,39 @@ +package fr.iut.sciencequest.ViewModels + +import fr.iut.sciencequest.ViewModels.UiStates.PenduUIState +import kotlinx.coroutines.flow.MutableStateFlow + +class PenduVIewModel { + var uiState = MutableStateFlow(PenduUIState()) + + // mot : mot à trouver + // motAct : état actuel du mot trouvé par l'utilisateur + public fun PlayAction(lettre: Char) { + if (uiState.value.motATrou.contains(lettre)) { + uiState.value = PenduUIState(false, + uiState.value.nbViesRestantes, + uiState.value.motATrouver, + uiState.value.motATrou + ) + } + if (uiState.value.motATrouver.contains(lettre)) { + var nvMotATrou = uiState.value.motATrou + for (index in uiState.value.motATrouver.indices) { + if (uiState.value.motATrouver[index] == lettre) { + nvMotATrou = nvMotATrou.replaceRange(index,index, lettre.toString()) + } + } + uiState.value = PenduUIState(true, + uiState.value.nbViesRestantes, + uiState.value.motATrouver, + uiState.value.motATrou + ) + } else { + uiState.value = PenduUIState(true, + uiState.value.nbViesRestantes - 1, + uiState.value.motATrouver, + uiState.value.motATrou + ) + } + } +} \ No newline at end of file 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 98b6e7c..fc3326d 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 @@ -1,9 +1,8 @@ package fr.iut.sciencequest.ViewModels.UiStates data class PenduUIState( - val isActionGood: Boolean, - val nbViesRestantes: Int, - val motATrouver: String, - val motATrou: String, - val lettreJoue: Char + val isActionGood: Boolean = false, + val nbViesRestantes: Int = 10, + val motATrouver: String = "", + val motATrou: String = "" ) diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/buisness/Pendu.kt b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/Pendu.kt deleted file mode 100644 index 1a5eab2..0000000 --- a/android/app/src/main/java/fr/iut/sciencequest/model/buisness/Pendu.kt +++ /dev/null @@ -1,31 +0,0 @@ -package fr.iut.sciencequest.model.buisness - -import fr.iut.sciencequest.ViewModels.UiStates.PenduUIState - -// mot : mot à trouver -// motAct : état actuel du mot trouvé par l'utilisateur -public fun PlayAction(uiState: PenduUIState): PenduUIState { - if (uiState.motATrou.contains(uiState.lettreJoue)) { - return PenduUIState(false,uiState.nbViesRestantes,uiState.motATrouver,uiState.motATrou,' ') - } - if (uiState.motATrouver.contains(uiState.lettreJoue)) { - var nvMotATrou = uiState.motATrou - for (index in uiState.motATrouver.indices) { - if (uiState.motATrouver[index] == uiState.lettreJoue) { - nvMotATrou = nvMotATrou.replaceRange(index,index, uiState.lettreJoue.toString()) - } - } - return PenduUIState(true, - uiState.nbViesRestantes, - uiState.motATrouver, - uiState.motATrou, - ' ') - } else { - return PenduUIState(true, - uiState.nbViesRestantes - 1, - uiState.motATrouver, - uiState.motATrou, - ' ') - } -} -