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 d574d60..63a2e62 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 @@ -2,17 +2,45 @@ package fr.iut.sciencequest.ViewModels import android.util.Log import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import fr.iut.sciencequest.ViewModels.UiStates.PenduUIState +import fr.iut.sciencequest.model.buisness.Scientifique.fetchScientifiqueById +import fr.iut.sciencequest.model.buisness.Scientifique.fetchScientifiques +import fr.iut.sciencequest.model.dto.extensions.ToModel import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.launch class PenduViewModel : ViewModel() { - var uiState = MutableStateFlow(PenduUIState()) + var uiState = MutableStateFlow(PenduUIState()) + + fun InitPartie() { + Log.d("PenduViewModel","Un utilisateur initialise une partie") + viewModelScope.launch { + fetchScientifiqueById(1).collect { + val nomComplet = it.prenom + " " + it.nom + Log.d("ViewModelPendu",nomComplet) + var motATrou = "" + for (chr in nomComplet) { + motATrou += if (chr == ' ') { + ' ' + } else { + '_' + } + } + uiState.value = PenduUIState( + isActionGood = true, + motATrouver = nomComplet, + motATrou = motATrou + ) + } + } + } // mot : mot à trouver // motAct : état actuel du mot trouvé par l'utilisateur - public fun PlayAction(lettre: Char) { + fun PlayAction(lettre: Char) { Log.d("PenduViewModel","Un utilisateur joue une action") - if (uiState.value.motATrou.contains(lettre)) { + if (lettre == ' ' || uiState.value.motATrou.contains(lettre)) { Log.d("PenduViewModel","L'utilisateur a fait une action invalide") uiState.value = PenduUIState(false, false, @@ -35,7 +63,6 @@ class PenduViewModel : ViewModel() { if (nvMotATrou.equals(uiState.value.motATrouver)) { isWon = true } - uiState.value = PenduUIState(isWon, true, uiState.value.nbViesRestantes, 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 20ba2ae..d2479a3 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 @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.runtime.Composable @@ -49,9 +50,9 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(), goToHome() } }}, - modifier = Modifier.padding(20.dp).fillMaxWidth()) - Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.Center) { - Text(text = state.value.nbViesRestantes.toString()) + modifier = Modifier.padding(20.dp)) + Button(onClick = { viewModel.InitPartie() }) { + Text(text = stringResource(id = R.string.reset_game)) } } } diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 62fda02..7c35053 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -13,4 +13,5 @@ Continuer sans compte Si vous n\'avez pas encore de compte, vous avez deux possibilitées, soit vous continuez sans compte, soit vous vous inscrivez Coming soon... + Nouvelle Partie \ No newline at end of file