Quiz- Fragen zufällig anzeigen lassen

Niklas170

Mitglied
Hallo, ich habe ein Quiz programmiert. Das einzige, was ich noch ändern will, ist, dass die Fragen zufällig und nicht immer in der gleichen Reihenfolge angezeigt werden. Kann mir jemand helfen und einen möglichen Lösungscode, der funktioniert, hier drunter schreiben? Wäre sehr nett und danke im voraus!
Hier mein Code:

Java:
//
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Quiz {

  public static void main(String[] args) {
 
    int punkte = 0;
 
    String[] frage1 = {
    "Wann fand die erste Mondlandung statt?",
    "<1> 1989",
    "<2> 1969",
    "<3> 1927",
    "2"
    };
 
    String[] frage2 = {
    "Von welchem Künstler stammt das Gemälde Sternenhimmel?",
    "<1> Rainer Randig",
    "<2> Pablo Picasso",
    "<3> Vincent van Gogh",
    "3"
    };
    String[] frage3 = {
    "Wie heißt die Hauptstadt von Eritrea?",
    "<1> Asmara",
    "<2> Bocklemühl",
    "<3> Biewende",
    "1"
    };
    String[] frage4 = {
    "Wann wurde die UNO gegründet?",
    "<1> 1945",
    "<2> 1938",
    "<3> 1990",
    "1"
    };
    String[] frage5 = {
    "Für welchen europäischen Topklub spiele Hristo Stoichkov?",
    "<1> FC Barcelona",
    "<2> Manchester United",
    "<3> Inter Mailand",
    "1"
    };
    String[] frage6 = {
    "Wer gewann die Fußballweltmeisterschaft 2010?",
    "<1> Argentinien",
    "<2> Spanien",
    "<3> Niederlande",
    "2"
    };
    //Fragen werden in einem zweidimensionalen String-Array gespeichert
    String[][] liste = {
    frage1,frage2,frage3,frage4,frage5,frage6
    };
    //Ausgabe von Fragen in der Konsole
    for(int i=0;i<liste.length;i++)
      {
   
      System.out.println(liste[i][I][0]);
      System.out.println(liste[i][I][1]);
      System.out.println(liste[I][i][2]);
      System.out.println(liste[i][I][3]);
      System.out.println("Bitte Antwort eingeben: ");
    
      //Einlesen von Eingabe
      BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    
      try {
        String antwort =  eingabe.readLine();
        System.out.println("Sie haben als Antwort: "+antwort+" eingegeben.");
      
        //Vergleichen von Antworten
        if(antwort.equals(liste[I][i][4]))
          {
          System.out.println("#GenauDAS!\n");
          punkte++;
          }
        else
          {
          System.out.println("#nö!\n");
        }
      
      } catch (IOException e) {
        System.out.println("Falsche Eingabe!");
      }
    }
    System.out.println("Sie haben "+punkte+" von 6 Punkten erreicht.");
    if(punkte==6)
      {
      System.out.println("Sie erhalten die Gewinnsumme von 1.000.000€!");
      }
    else
      {
      System.out.println("Versuchen Sie es erneut!");
    }
  }
  
}
//
 
Zuletzt bearbeitet von einem Moderator:

kaeru

Mitglied
Nur ein kleiner Schubs in die richtige Richtung:
Suche nach "array zufällig mischen"
oder schau dir mal Collections.shuffle(arraylist) an.
 

VfL_Freak

Top Contributor
Moin,

nutze doch bitte die Code-Tags!!
Entweder über den "Einfügen..."-Button im Editor oder direkt: [code=Java] ...meinTollerCode... [/code]

Gruß Klaus
 

Cromewell

Top Contributor
Habe gerade nichts zu tun, deshalb hier ein Vorschlag ^^:
Java:
public static void main(String[] args){

    List<String> questions = new ArrayList<>();
    questions.add("Frage 1: lalala");
    questions.add("Frage 2: hshshsh");

    String[] a1 = new String[]{"12", "14", "20"};
    String[] a2 = new String[]{"klo", "schuessel", "decke"};

    Collections.shuffle(questions);
    for (String s: questions){
        String num = s.substring(6, 7);
        System.out.println(s);
        if(Objects.equals(num, "1")){
            printAnswers(a1);
        }else if(Objects.equals(num, "2")){
            printAnswers(a2);
        }
    }
}

private static void printAnswers(String[] a) {
    for (String answer: a) {
        System.out.println(answer);
    }
}
 

JStein52

Top Contributor
Am besten wäre es du machst dir eine Klasse "Frage" in der du in geeigneten Attributen die Frage und die zugehörigen Antworten speicherst (inkl. Kennzeichen welches die richtige ist). Instanzen dieser Klasse speicherst du dann in einer ArrayList und beim Spielen greifst du dann per Zufallsindex auf diese Fragen zu. Du wirst dann noch geeignete Getter-Methoden brauchen (getFrage(), getAntworten(), istAntwortKorrekt() etc.) und schon hast du was du brauchst. Beim Vorschlag von @Cromewell sehe ich nicht wie er das mit beliebig vielen Fragen handlen will ?
 

Cromewell

Top Contributor
@JStein52 Da hast du Recht. War auch nur schnell erstellt x)

So ist schon besser:
Java:
public class Question {

    private String quest;
    private String[] answers;
    private int solution;

    public Question(String quest, String[] answers, int solution){
        this.quest = quest;
        this.answers = answers;
        this.solution = solution;
    }

    public String getQuest() {
        return quest;
    }

    public void printAnswers() {
        for(String answer: answers){
            System.out.println(answer);
        }
    }

    public int getSolution() {
        return solution;
    }
}
So in etwa die main-func:
Java:
public static void main(String[] args){
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    int inp = 0;

    List<Question> questions = new ArrayList<>();
    questions.add(new Question("Frage 1: Wer bin ich?", new String[]{"a", "b", "c"}, 0));
    questions.add(new Question("Frage 2: Wie alt bin ich?", new String[]{"1", "2", "3"}, 1));

    for(Question q: questions){
        System.out.println(q.getQuest());
        q.printAnswers();
        try {
            inp = Integer.parseInt(reader.readLine());
        } catch (IOException e) {
            System.err.println("Fehler bei der Eingabe...");
            e.printStackTrace();
        } catch (IllegalArgumentException iae){
            System.err.println("Zahlen zwischen 1 und 3");
        }
        if(inp-1 == q.getSolution()){
            System.out.println("Richtig!");
        }else{
            System.out.println("Leider nicht...");
        }
    }

}

PS: Dann noch Collections.shuffle(questions); einbauen... und eventuell das "Frage n" rausnehmen :D
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Fragen zu Quiz programm Java Basics - Anfänger-Themen 9
F Fragen- Antwortenkatalog ("Quiz") Java Basics - Anfänger-Themen 2
B Quiz mit RMI Probleme mit RMI start Java Basics - Anfänger-Themen 4
G Quiz mit zufälligen Rechenaufgaben Java Basics - Anfänger-Themen 3
L Konzept für Quiz Java Basics - Anfänger-Themen 33
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
B Auswahlmöglichkeit bei Quiz beschränken Java Basics - Anfänger-Themen 21
S Zufallsgenerator für ein Quiz Java Basics - Anfänger-Themen 8
S Kleines Quiz Programm Java Basics - Anfänger-Themen 4
D Java Quiz gesucht Java Basics - Anfänger-Themen 7
S Java Quiz mit Gui Java Basics - Anfänger-Themen 16
E Java Quiz Programmieren Java Basics - Anfänger-Themen 6
H Brauch bei programmierung von quiz unterstützung Java Basics - Anfänger-Themen 11
kulturfenster Quiz - Gestaltung Java Basics - Anfänger-Themen 2
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben