Hallo liebe Community!
Ich wollte ein eigenes Knobelspiel programmieren, welches den User nach Schere, Stein oder Papier fragt. Der Computer generiert eine Random-Zahl von 0-2, und hat dann auch entweder Schere, Stein oder Papier. Das funktioniert alles sehr gut, ich habe jedoch 2 große Probleme mit dem Code, schaut ihn euch mal bitte an.
Diese Probleme sind:
1- Die IF-Abfragen funktionieren komischer Weise nicht... Ich habe einmal den Code debugt und habe durch gestept, und auch wenn die IF, bzw. die Else-If abfrage stimmt, überspringt er es einfach. Kann mir da wer helfen, bzw. sagen warum er die IF-Abfrage einfach als "false" sieht, obwohl es richtig ist?
Danke schon mal im Vorraus!
PS: Bitte produktive Antworten, nicht soetwas wie: der Code ist ja ur schlecht, schäm dich!
Ich wollte ein eigenes Knobelspiel programmieren, welches den User nach Schere, Stein oder Papier fragt. Der Computer generiert eine Random-Zahl von 0-2, und hat dann auch entweder Schere, Stein oder Papier. Das funktioniert alles sehr gut, ich habe jedoch 2 große Probleme mit dem Code, schaut ihn euch mal bitte an.
Java:
import java.util.Random;
import javax.swing.JOptionPane;
public class Master {
public static void main(String[] args) {
Random rand = new Random();
while (true) {
int var = rand.nextInt(3);
String eingabe, comp = null;
eingabe = JOptionPane.showInputDialog("Bitte Schere/Stein/Papier eingeben:");
switch (var) {
case 0:
comp = "Schere";
break;
case 1:
comp = "Stein";
break;
case 2:
comp = "Papier";
break;
}
System.out.println("comp: \"" + comp + "\" eingabe: \"" + eingabe + "\"");
if (comp==eingabe) {
JOptionPane.showMessageDialog(null, "Der Computer hat auch " + comp + " genommen! Score bleibt gleich.");
score(false);
} else if ((eingabe == "Stein") && (comp == "Schere")) {
score(true);
} else if ((eingabe == "Stein") && (comp == "Papier")) {
score(false);
} else if ((eingabe == "Schere") && (comp == "Stein")) {
score(false);
} else if ((eingabe == "Schere") && (comp == "Papier")) {
score(true);
} else if ((eingabe == "Papier") && (comp == "Schere")) {
score(false);
} else if ((eingabe == "Papier") && (comp == "Stein")) {
score(true);
}
}
}
public static void score(boolean gewonnen) {
int[] score= new int[2];
if (gewonnen) {
score[0] += 1;
score[1] += 1;
JOptionPane.showMessageDialog(null, "Gluckwunsch, Gewonnen! Insgesamt " + score[0] + "/" + score[1]);
} else {
score[0] += 0;
score[1] += 1;
JOptionPane.showMessageDialog(null, "Leider verloren! Insgesamt " + score[0] + "/" + score[1]);
}
}
}
Diese Probleme sind:
1- Die IF-Abfragen funktionieren komischer Weise nicht... Ich habe einmal den Code debugt und habe durch gestept, und auch wenn die IF, bzw. die Else-If abfrage stimmt, überspringt er es einfach. Kann mir da wer helfen, bzw. sagen warum er die IF-Abfrage einfach als "false" sieht, obwohl es richtig ist?
in der Methode score, recht weit unten, definiere ich ein Array namens score[], das Problem ist jedoch, dass diese Variable immer neu auf 0 gesetzt wird. Wo, bzw. wie kann ich die Variable anders setzen, dass er nur einmal die Variable definiert?
PS: Bitte produktive Antworten, nicht soetwas wie: der Code ist ja ur schlecht, schäm dich!
Zuletzt bearbeitet: