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 d5b93d6..8ae07a3 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,15 +2,37 @@ 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 { + var motATrou = "" + for (chr in it.nom) { + motATrou += "_" + } + uiState.value = PenduUIState( + isActionGood = true, + motATrouver = it.nom, + 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)) { Log.d("PenduViewModel","L'utilisateur a fait une action invalide") 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 fed615e..f9157c2 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 @@ -5,6 +5,7 @@ import android.widget.Toast import androidx.compose.foundation.layout.Column 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 @@ -37,11 +38,14 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(), viewModel.PlayAction(it[0]) if ((!state.value.isWon) && (state.value.nbViesRestantes == 0)) { goToHome() - } else { + } else if (state.value.isWon) { Toast.makeText(context,"Vous avez gagné !",Toast.LENGTH_LONG).show() } }}, 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