Domanda Quiz confronto risposte con risposte esatta

Stato
Discussione chiusa ad ulteriori risposte.

kiry32

Utente Silver
27 Marzo 2016
85
16
7
61
Ragazzi io sto creando un quiz con android studio,volevo sapere come potevo confrontare la risposta con la risposta giusta e aumentare di +1 il punteggio
Java:
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;;
import java.util.Arrays;
import java.util.Random;

public class Domanda1 extends AppCompatActivity {

    String[] domande = {""};
    String[][] risposte = {{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"},{"Vero", "Falso"}, {"Vero", "Falso"}};
    int [] giuste = {1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,1};
    int punteggio_ris = 0;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_domanda1);

        Random casuale = new Random();
        int scelta;
        scelta = casuale.nextInt(24);

        int esatt_risp;
        esatt_risp = giuste[scelta];

        final TextView domanda1 = (TextView) findViewById(R.id.domanda1);

        domanda1.setText(domande[scelta]);




            Button risposta0 = (Button) findViewById(R.id.risposta0);
            risposta0.setText(risposte[scelta][0]);

        if(risposte.equals(esatt_risp)) {
            punteggio_ris = +1;

        }

            risposta0.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent d2 = new Intent(getApplicationContext(), Domanda2.class);
                    d2.putExtra("puntegg", punteggio_ris);
                    startActivity(d2);

                }
            });



        Button risposta1 = (Button) findViewById(R.id.risposta1);
        risposta1.setText(risposte[scelta][1]);

        if(risposta1.equals(esatt_risp)) {
            punteggio_ris = +1;

        }

        risposta1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent d2 = new Intent(getApplicationContext(), Domanda2.class);
                d2.putExtra("puntegg", punteggio_ris);
                startActivity(d2);

            }
        });

Grazie a tutti in anticipo
 
Ti basta mettere un array di interi e dare una posizione a ogni risposta.
Ovviamente per le risposte booleane dai 0 o 1 e hai finito.
Comunque, ti serve un aiuto per il codice o per l'algoritmo?
 
non so che scrivere sto nel pallone e non sono espertissimo in java se mi fai vedere che fare ti sarò eternamente grato
 
Questo perchè non hai ben chiaro cosa vuoi fare.
Prima di iniziare a scrivere codice bisogna avere uno schema ben preciso, non ancora un vero e proprio algoritomo, semplicemente come l'applicazione deve funzionare.
Per esempio i vari passaggi posso essere i seguenti:
1) visualizzare le domande e permettere di scegliere una risposta
2) una volta fatta la scelta, permettere, tramite un pulsante, di salvare la risposta e visualizzare la domanda successiva
( vale lo stesso se vuoi sottoporre più domande alla volta )
3) una volta salvato il risultato in un array ( visto che sono più domande ), confrontare l'array delle risposte corrette settato via codice con l'array delle risposte date dall'utente
( ovviamente si confronta una riposta per volta )
4) per ogni risposta corretta far aumentare un indice che tiene conto del punteggio
5) finito di controllare tutte le risposte, stampare il punteggio corretto

Seguendo questo algoritmo puoi scrivere un programma in qualsiasi linguaggio senza alcun problema
 
non so che scrivere sto nel pallone e non sono espertissimo in java se mi fai vedere che fare ti sarò eternamente grato
Si potrebbe usare equals ( ) o equalsIgnoreCase ( ) e quindi aumentare il valore di un numero intero ogni volta che viene inserita una risposta corretta.
Java:
int punteggio = 0 ;
Scanner in = new Scanner ( System.in ) ;

System.out.print ( " Vero o falso : " ) ;
String risposta = in.nextLine ( ) ;

if ( answer.equalsIgnoreCase ( " true") )
{
    System.out.println ( "Esatto ! " ) ;
    segnare ++ ; // Aggiungere 1 al punteggio
}
altro
    System.out.println ( " non corretta . "); // Non aggiungere 1 e segna come la risposta non era corretta
 
Grazie a tutti ho risolto aggiungendo al bottone

Java:
 public void onClick(View v) {
                controlloRisposta(1); //1 se vero<------------------------
                Intent d2 = new Intent(getApplicationContext(), Domanda2.class);
                d2.putExtra("puntegg", punteggio_ris);
                startActivity(d2);

           }

e alla fine ho aggiunto una variabile alla fine
Java:
 private void controlloRisposta(int valore){
       if(esatt_risp == valore){
            punteggio_ris = +1;
       }
   }

[code=java]

si può chiudere graziee
 
Stato
Discussione chiusa ad ulteriori risposte.