Hjälp med frågeprogram i java

Permalänk

Hjälp med frågeprogram i java

Håller på med att skriva ett litet frågeprogram i java för att ha till hjälp att plugga, jag har kommit så långt att programmet gör vad det ska och funkar men är inte riktigt nöjd med kodningen... Jag vill att på varje fråga så för att få rätt så måste man ha med en viss mängd "nyckelord" i sitt svar.
Tex. Vad är android? Svar: Ett operativsystem för mobiler gjort av google.
Då ska programmet kolla om man har med orden operativsystem, mobiler och google. Just nu har jag löst det igenom att lägga de tre nyckelorden i en array i objektet med frågan men nackdelen med det är om jag bara har ett nyckelord i nästa fråga så måste jag fylla ut resterade platser i arrayen med samma ord. Vet någon något bättre sätt att lösa detta på?

Här är hela källkoden, ser ni något annat som är galet så säg gärna till, frågorna handlar om judendomen för jag hade det i skolan när jag började på programmet.

import javax.swing.JOptionPane; public class game { public static void startGame() { int antal = 5; question[] fragor = new question[antal]; fragor[0] = new question("Vem är jude?", "Någon som är född av en judinna, eller konverterat till judendomen", "konverterat", "judinna", "judinna", "judinna"); fragor[1] = new question("Vilka är de tre huvudinriktningarna inom Judendomen?", "ortodox judendomen, konserativ judendomen och reform judendomen", "ortodox", "konserativ", "reform", "reform"); fragor[2] = new question("Hur många judar finns det i världen respektive israel?", "Cirka 17 miljoner och ca 5 miljoner", "17", "5", "miljoner", "miljoner"); fragor[3] = new question("Vilken inriktning följer halacha mest?", "ortodox judendomen", "ortodox", "ortodox", "ortodox", "ortodox"); fragor[4] = new question("Vad är Hebron?", "En helig stad, där både muslimer och judar ber. Noa och Abraham sägs ligga begravda här.", "Abraham", "stad", "Muslimer", "Judar"); Collections.shuffle(Arrays.asList(fragor)); int rätt = 0; for (int x = 0; x < antal; x++) { rätt += fragor[x].fragafraga(); } JOptionPane.showMessageDialog(null, "Du hade " + rätt + "/" + antal + " rätt"); } }

import javax.swing.JOptionPane; public class Judendomen { public static void main(String[] args) { game starta = new game(); int response = 0; while (response == 0) { game.startGame(); response = JOptionPane.showConfirmDialog(null, "Vill du köra igen?", "Igen?", 0, 3); } } }

import javax.swing.JOptionPane; public class question { private String fraga; private String svar; private String[] keyword; public question(String f, String s, String k, String k2, String k3, String k4) { this.fraga = f; this.svar = s; String[] akeyword = { k.toUpperCase(), k2.toUpperCase(), k3.toUpperCase(), k4.toUpperCase() }; this.keyword = akeyword; } public int fragafraga() { String asvar = JOptionPane.showInputDialog(null, this.fraga, "Judendomen", 3); asvar = asvar.toUpperCase(); if ((asvar.indexOf(this.keyword[0]) != -1) && (asvar.indexOf(this.keyword[2]) != -1) && (asvar.indexOf(this.keyword[2]) != -1) && (asvar.indexOf(this.keyword[3]) != -1)) { JOptionPane.showMessageDialog(null, "Rätt! " + this.svar, "Rätt", -1); return 1; } JOptionPane.showMessageDialog(null, "Fel, rätt svar är: " + this.svar, "Fel ;/", -1); return 0; } }

Permalänk
Medlem

Du kan skriva så här t.ex.

public void test(String... params){ for(String string : params){ System.out.println(string); } }

Metoden tar då ett godtyckligt antal String parametrar.

test("hej","hå");

ger:
hej

test("hej","hå","1","2","3");

ger:
hej

1
2
3

Antar att du förstår med det exemplet.

Samma gäller då även för konstruktorer.
Du kan även använda params.length för att bestämma storleken på arrayen, eller så använder du en lista istället.