[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(),
color = MaterialTheme.colorScheme.background
) {
NavHost(this)
NavHost()
}
}
}

@ -27,10 +27,10 @@ class KahootViewModel: ViewModel() {
}
// NOTE : tpsReponse en ms
fun ajouterPoints(tpsReponse: Int) {
fun ajouterPoints(tpsReponse: Long) {
val nbPoints = if(uiState.value.reponseChoisie) {
10_000 - tpsReponse
val nbPoints: Int = if(uiState.value.reponseChoisie) {
(10_000 - tpsReponse).toInt()
} else {
0
}
@ -38,6 +38,6 @@ class KahootViewModel: ViewModel() {
duréePartie = uiState.value.duréePartie,
nbPoints = uiState.value.nbPoints + nbPoints,
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 (
val question: QuestionWithSimpleResponseDTO = StubQuestionWithReponses,
val reponseChoisie: Boolean = false,
// NOTE : Supposé en secondes, à changer si besoins
val duréePartie: Long = 10,
// NOTE : Supposé en millisecondes
val duréePartie: Long = 10_000,
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.stub.StubQuestionWithReponses
import fr.iut.sciencequest.view.TopBar
import java.util.Timer
@Composable
fun KahootScreen(viewModel: KahootViewModel = viewModel(),
@ -34,7 +35,9 @@ fun KahootScreen(viewModel: KahootViewModel = viewModel(),
viewModel.lancerPartie()
Column(modifier = Modifier.fillMaxWidth()) {
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
@Composable
fun KahootPlayerPreview(){
KahootPlayer(question = StubQuestionWithReponses)
val i = 0
KahootPlayer(question = StubQuestionWithReponses) {}
}
@Composable
fun KahootPlayer(question: QuestionWithSimpleResponseDTO){
fun KahootPlayer(question: QuestionWithSimpleResponseDTO,
sendReponse: (Long) -> Unit){
val context = LocalContext.current;
val currTime = System.currentTimeMillis()
Column (horizontalAlignment = Alignment.CenterHorizontally){
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.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@ -23,10 +24,10 @@ import fr.iut.sciencequest.view.TopBar
@Composable
fun PenduScreen(viewModel: PenduViewModel = viewModel(),
context: Context,
goToAccount: () -> Unit,
goToHome: () -> Unit) {
val state = viewModel.uiState.collectAsState()
val context = LocalContext.current;
Column(modifier = Modifier.fillMaxWidth()) {
TopBar(goToAccount, goToHome, stringResource(id = R.string.pendu))
//Text(text = stringResource(id = R.string.pendu), modifier = Modifier.padding(top=10.dp))

Loading…
Cancel
Save