forked from tom.biard/ScienceQuest
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
|
package fr.iut.sciencequest.ViewModels.UiStates
|
||||||
|
|
||||||
data class PenduUIState(
|
data class PenduUIState(
|
||||||
val isActionGood: Boolean,
|
val isActionGood: Boolean = false,
|
||||||
val nbViesRestantes: Int,
|
val nbViesRestantes: Int = 10,
|
||||||
val motATrouver: String,
|
val motATrouver: String = "",
|
||||||
val motATrou: String,
|
val motATrou: String = ""
|
||||||
val lettreJoue: Char
|
|
||||||
)
|
)
|
||||||
|
@ -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…
Reference in new issue