Answers clickable now

pull/19/head
tomivt 2 months ago
parent 773c40bfa6
commit 1cdf28bcdd

@ -1,5 +1,6 @@
package com.example.what_the_fantasy.ui.screens
import android.util.Log
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@ -18,6 +19,11 @@ import androidx.compose.material3.ButtonColors
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Offset
@ -28,16 +34,34 @@ import androidx.compose.ui.unit.sp
import com.example.what_the_fantasy.data.local.QuestionStub
import com.example.what_the_fantasy.data.model.Question
val questions = QuestionStub.allQuestions
var pts = 0
@Composable
fun QuizPage() {
var idCurrentQuestion by remember { mutableIntStateOf(0) }
fun goNext(correctAns: String, ans: String) {
if (correctAns == "A") {
if (questions[idCurrentQuestion].ansA == ans) pts += 1
}
if (correctAns == "B") {
if (questions[idCurrentQuestion].ansB == ans) pts += 1
}
if (correctAns == "C") {
if (questions[idCurrentQuestion].ansC == ans) pts += 1
}
if (correctAns == "D") {
if (questions[idCurrentQuestion].ansD == ans) pts += 1
}
if (idCurrentQuestion < questions.size) idCurrentQuestion += 1
}
val gradient = Brush.linearGradient(
colors = listOf(Color(0xFF7B1FA2), Color(0xFF311B92)), // Violet clair → Violet foncé
start = Offset(0f, 1000f), // Départ en bas à gauche
end = Offset(1000f, 0f) // Fin en haut à droite
)
val questions = QuestionStub.allQuestions
Box(
modifier = Modifier
.fillMaxSize()
@ -46,13 +70,21 @@ fun QuizPage() {
) {
// Numéro de la question en haut
Text(
text = "Question numéro : " + questions.first().id.toString(),
text = "Question numéro : " + questions[idCurrentQuestion].id.toString(),
color = Color.White,
fontSize = 18.sp, // Taille réduite pour tenir sur un écran portrait
modifier = Modifier
.align(Alignment.TopCenter) // Position en haut au centre
.padding(top = 16.dp) // Un peu d'espace en haut
)
Text(
text = "Nombre de points : " + pts.toString(),
color = Color.White,
fontSize = 18.sp, // Taille réduite pour tenir sur un écran portrait
modifier = Modifier
.align(Alignment.TopCenter) // Position en haut au centre
.padding(top = 50.dp) // Un peu d'espace en haut
)
// Contenu centré, mais avec une gestion plus équilibrée du placement
Column(
@ -64,7 +96,7 @@ fun QuizPage() {
) {
// Question principale
Text(
text = questions.first().question,
text = questions[idCurrentQuestion].question,
color = Color.White,
fontSize = 22.sp, // Taille plus petite pour tenir sur un écran portrait
modifier = Modifier.padding(bottom = 16.dp) // Réduit l'espacement entre la question et les réponses
@ -72,13 +104,15 @@ fun QuizPage() {
// Liste des réponses
val answers = listOf(
questions.first().ansA,
questions.first().ansB,
questions.first().ansC,
questions.first().ansD
questions[idCurrentQuestion].ansA,
questions[idCurrentQuestion].ansB,
questions[idCurrentQuestion].ansC,
questions[idCurrentQuestion].ansD,
)
// Pour chaque réponse, on applique une Box avec un espacement uniforme
answers.forEach { answer ->
Box(
modifier = Modifier
@ -88,7 +122,7 @@ fun QuizPage() {
brush = gradient,
shape = RoundedCornerShape(16.dp) // Coins arrondis
)
.clickable { /* Action pour la réponse */ }
.clickable { goNext(questions[idCurrentQuestion].correctAns, answer) }
.padding(horizontal = 8.dp), // Padding interne
contentAlignment = Alignment.Center
) {

Loading…
Cancel
Save