[FIX] Déplacer logique dans ViewModel

RepositoryAndroid
Renaud BEURET 1 year ago
parent 1e6a25a5a3
commit 042f9399af

@ -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>(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
)
}
}
}

@ -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 = ""
)

@ -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,
' ')
}
}
Loading…
Cancel
Save