Hey leute brauche hilfe zu einer Klausuraufgabe, die ich bissl seltsam finde, drunter findet ihr meine lösung, aber irgendwie kommt bei meinem Spiel, immer die meldung "sie haben verloren".
Kann mir jemand sagen was ich falsch mache .
Kann mir jemand sagen was ich falsch mache .
Implementieren Sie das folgende kleine Spiel, bei dem ein Computer gegen einen Menschen spielt:
Das Spiel wird solange gespielt, bis der Mensch verloren oder 10 Punkte erreicht hat. Es besteht aus mehreren Runden. In jeder Runde generiert der Computer zufällig einen Kleinbuchstaben (‚a‘ … ‚z‘) und gibt diesen auf den Bildschirm aus. Der Benutzer muss dann innerhalb von jeweils 3 Sekunden überprüfen, ob genau dieser Buchstabe bereits zum zweiten, vierten, sechsten (also einem Vielfachen von 2) Mal auf dem Bildschirm erschienen ist. In diesem Fall (und nur in diesem) muss er eine beliebige Taste drücken. Hat er Recht, bekommt er einen Punkt. Hat er Unrecht oder überschreitet die Zeitgrenze von 3 Sekunden, hat er unmittelbar verloren. Erreicht er 10 Punkte, hat er gewonnen.
Achtung: Implementieren Sie das Spiel auf eine imperative Art und Weise. Sie können dabei folgende Klasse benutzen:
public class Util {
/**
* Blockiert das Programm für eine bestimmt Zeit und
* ueberprueft, ob während dieser Zeit eine Taste
* gedrückt wurde.
*
*@param secs
* Anzahl an Sekunden, die gewartet werden soll
* @return liefert genau dann true, wenn innerhalb von
* secs-Sekunden eine Taste gedrückt wurde
*/
public static boolean keyPressed(int secs)
}
Java:
import NimmSpiel.IO;
public class myspiel {
public static char buchstabenerzeugen() {
return (char) (Math.random() * 26 + 'a');
}
public static void main(String args[]) {
int punkte = 0;
int index = 97;
Object[][] array = new Object[26][2];
// das alphabet im array array ablegen
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][1] = 0;
}
array[i][0] = (char) index;
index++;
}
boolean pressed = Util.keyPressed(300);
System.out.println(pressed);
while (punkte < 10) {
char z = buchstabenerzeugen();
System.out.println(z);
// bereits vorhandene buchstaben suchen und index erhöhen
for (int k = 0; k < array.length; k++) {
if (array[k][0].equals(z)) {
array[k][1] = (Integer) array[k][1] + 1;
}
}
// punkteverteilen
for (int ol = 0; ol < array.length; ol++) {
if ((Integer) array[ol][1] % 2 == 0 && (Integer) array[ol][1] != 0 && pressed) {
punkte++;
System.out.println("ihre punkte "+ punkte);
} else if ((pressed&&(Integer) array[ol][1] % 2 != 0)||(!pressed)) {
System.out.println("sie haben verloren ");
return ;
}
}
}
}
}