G
Guest
Gast
Guten Morgen zusammen,
ich versuche mich gerade an einer Art Outburst in Java.
Der Benutzer bekommt eine Kategorie, wie z.B. Weltstaedte, und gibt dann Tipps ab. Dabei sind 10 Staedte vorgegeben. Für jeden Treffer soll der Spieler anschließend einen Punkt erhalten.
Soweit so gut. Der 10 vorgegebenen Staedte liegen in einem String-Array vor. Jetzt möchte ich die Eingabe des Spielers, welche in einem byte-Array abgespeichert werden, mit dem String-Array vergleichen.
Benutzer gibt zb London ein. Dann soll geprüft werden, ob "London" im Array vorkommt. Leider komme ich nicht darauf, wie ich das vergleichen kann bzw. es will nicht funktionieren. Hab mir hier einige Thread durchgelesen, gegoogelt, aber eine Lösung dafür nicht gefunden.
Hier mal Auszüge aus dem Code (sorry für "absolut schlechten" Code, bin halt Anfänger ;-) ).
Habs mit equals probiert und mit der Umwandlung in Listen, aber bekomme den Vergleich nicht hin. Bzw er scheint die Eingabe beim Vergleich als False zu erkennen, auch wenn ich eine richtige Antwort eingebe.
Sicher gibt es eine Möglichkeit, aber vielleicht auch einen viel einfacheren Weg?
Vielen Dank im Voraus für Tipps und Anregungen.
LG
ich versuche mich gerade an einer Art Outburst in Java.
Der Benutzer bekommt eine Kategorie, wie z.B. Weltstaedte, und gibt dann Tipps ab. Dabei sind 10 Staedte vorgegeben. Für jeden Treffer soll der Spieler anschließend einen Punkt erhalten.
Soweit so gut. Der 10 vorgegebenen Staedte liegen in einem String-Array vor. Jetzt möchte ich die Eingabe des Spielers, welche in einem byte-Array abgespeichert werden, mit dem String-Array vergleichen.
Benutzer gibt zb London ein. Dann soll geprüft werden, ob "London" im Array vorkommt. Leider komme ich nicht darauf, wie ich das vergleichen kann bzw. es will nicht funktionieren. Hab mir hier einige Thread durchgelesen, gegoogelt, aber eine Lösung dafür nicht gefunden.
Hier mal Auszüge aus dem Code (sorry für "absolut schlechten" Code, bin halt Anfänger ;-) ).
Code:
public class Outburst {
private int punkte;
byte[] eingabe = new byte[30];
// Staedte wegen Übersicht durch a, b und c ersetzt
String[ ] weltstadt = {"a", "b", "c"};
String[ ] frage = {"Weltstaedte"};
public void spielen(){
java.util.Random random = new java.util.Random();
Object read = null;
for (int i = 0; i < spieler.length; i++) {
System.out.println("Sie haben 2 Minuten Zeit. Kategorie: " +
frage[random.nextInt(frage.length)]);
try {
for(int j = 0; j < 10; j++) {
System.in.read(eingabe);
if (weltstadt.equals(eingabe)){
punkte++;
System.out.println(punkte);
}
else{
System.out.println("komisch");
}
System.out.println("Tipp " + j + 1 + ": ");
int x = Integer.parseInt((new String(eingabe)).trim());
String[] eingabe = {""};
List lsteingabe = Arrays.asList(eingabe);
List lstweltstadt = Arrays.asList(weltstadt);
if (lstweltstadt.containsAll(lsteingabe))
{
System.out.println("alles drin");
}
//for(int l = 0; l<1000; l++)
}
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}
}
Habs mit equals probiert und mit der Umwandlung in Listen, aber bekomme den Vergleich nicht hin. Bzw er scheint die Eingabe beim Vergleich als False zu erkennen, auch wenn ich eine richtige Antwort eingebe.
Sicher gibt es eine Möglichkeit, aber vielleicht auch einen viel einfacheren Weg?
Vielen Dank im Voraus für Tipps und Anregungen.
LG