[ADD] Début logique Kahoot (points fonctionnent pas)

RepositoryAndroid
Renaud BEURET 1 year ago
parent 50d4a03973
commit a9fd6dbe74

@ -25,7 +25,7 @@ class MainActivity : ComponentActivity() {
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background color = MaterialTheme.colorScheme.background
) { ) {
NavHost(this) NavHost()
} }
} }
} }

@ -27,10 +27,10 @@ class KahootViewModel: ViewModel() {
} }
// NOTE : tpsReponse en ms // NOTE : tpsReponse en ms
fun ajouterPoints(tpsReponse: Int) { fun ajouterPoints(tpsReponse: Long) {
val nbPoints = if(uiState.value.reponseChoisie) { val nbPoints: Int = if(uiState.value.reponseChoisie) {
10_000 - tpsReponse (10_000 - tpsReponse).toInt()
} else { } else {
0 0
} }
@ -38,6 +38,6 @@ class KahootViewModel: ViewModel() {
duréePartie = uiState.value.duréePartie, duréePartie = uiState.value.duréePartie,
nbPoints = uiState.value.nbPoints + nbPoints, nbPoints = uiState.value.nbPoints + nbPoints,
reponseChoisie = false) reponseChoisie = false)
Log.d("KahootViewModel","Le joueur à ${uiState.value.reponseChoisie}") Log.d("KahootViewModel","Le joueur à ${uiState.value.nbPoints}")
} }
} }

@ -7,7 +7,7 @@ import fr.iut.sciencequest.stub.StubQuestionWithReponses
data class KahootUIState ( data class KahootUIState (
val question: QuestionWithSimpleResponseDTO = StubQuestionWithReponses, val question: QuestionWithSimpleResponseDTO = StubQuestionWithReponses,
val reponseChoisie: Boolean = false, val reponseChoisie: Boolean = false,
// NOTE : Supposé en secondes, à changer si besoins // NOTE : Supposé en millisecondes
val duréePartie: Long = 10, val duréePartie: Long = 10_000,
val nbPoints: Int = 0 val nbPoints: Int = 0
) )

@ -25,6 +25,7 @@ import fr.iut.sciencequest.model.dto.question.QuestionWithSimpleResponseDTO
import fr.iut.sciencequest.model.dto.reponse.ReponseSimpleDTO import fr.iut.sciencequest.model.dto.reponse.ReponseSimpleDTO
import fr.iut.sciencequest.stub.StubQuestionWithReponses import fr.iut.sciencequest.stub.StubQuestionWithReponses
import fr.iut.sciencequest.view.TopBar import fr.iut.sciencequest.view.TopBar
import java.util.Timer
@Composable @Composable
fun KahootScreen(viewModel: KahootViewModel = viewModel(), fun KahootScreen(viewModel: KahootViewModel = viewModel(),
@ -34,7 +35,9 @@ fun KahootScreen(viewModel: KahootViewModel = viewModel(),
viewModel.lancerPartie() viewModel.lancerPartie()
Column(modifier = Modifier.fillMaxWidth()) { Column(modifier = Modifier.fillMaxWidth()) {
TopBar(goToAccount, goToHome, stringResource(id = R.string.kahoot)) TopBar(goToAccount, goToHome, stringResource(id = R.string.kahoot))
KahootPlayer(state.value.question) KahootPlayer(state.value.question) {
viewModel.ajouterPoints(it)
}
} }
} }
@ -48,16 +51,22 @@ fun KahootScreenPreview(){
@Preview @Preview
@Composable @Composable
fun KahootPlayerPreview(){ fun KahootPlayerPreview(){
KahootPlayer(question = StubQuestionWithReponses) val i = 0
KahootPlayer(question = StubQuestionWithReponses) {}
} }
@Composable @Composable
fun KahootPlayer(question: QuestionWithSimpleResponseDTO){ fun KahootPlayer(question: QuestionWithSimpleResponseDTO,
sendReponse: (Long) -> Unit){
val context = LocalContext.current; val context = LocalContext.current;
val currTime = System.currentTimeMillis()
Column (horizontalAlignment = Alignment.CenterHorizontally){ Column (horizontalAlignment = Alignment.CenterHorizontally){
KahootQuestion(question = question.question) KahootQuestion(question = question.question)
KahootReponses(reponses = question.reponses) {Toast.makeText(context, it.reponse, Toast.LENGTH_SHORT).show()} KahootReponses(reponses = question.reponses) {
sendReponse(currTime - System.currentTimeMillis())
Toast.makeText(context, it.reponse, Toast.LENGTH_SHORT).show()
}
} }
} }

@ -13,6 +13,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@ -23,10 +24,10 @@ import fr.iut.sciencequest.view.TopBar
@Composable @Composable
fun PenduScreen(viewModel: PenduViewModel = viewModel(), fun PenduScreen(viewModel: PenduViewModel = viewModel(),
context: Context,
goToAccount: () -> Unit, goToAccount: () -> Unit,
goToHome: () -> Unit) { goToHome: () -> Unit) {
val state = viewModel.uiState.collectAsState() val state = viewModel.uiState.collectAsState()
val context = LocalContext.current;
Column(modifier = Modifier.fillMaxWidth()) { Column(modifier = Modifier.fillMaxWidth()) {
TopBar(goToAccount, goToHome, stringResource(id = R.string.pendu)) TopBar(goToAccount, goToHome, stringResource(id = R.string.pendu))
//Text(text = stringResource(id = R.string.pendu), modifier = Modifier.padding(top=10.dp)) //Text(text = stringResource(id = R.string.pendu), modifier = Modifier.padding(top=10.dp))

Loading…
Cancel
Save