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;
}
}
Intel Core i5-3570K | Gigabyte Geforce GTX 670 | ASRock Z77 Extreme4 | Corsair Vengeance LP 4x4gb | Intel 330 120GB SSD | Western Digital 2TB 5200rpm | Fractal Design Define R4 | Corsair 650W HX