Ich habe grad eben das Üblatt fertig gekriegt, aber ich wollte euch warnen... Wenn ihr mal lustig drauf seit und in eurer main Methode sowas reinbastelt:
Code: Alles auswählen
Choose your action:
p : Place ship
d : Drop bomb
s : Show field
>
Für Anfänger: Das macht alles kaputt! Nicht tun!
Für Profis: Das liegt daran, dass diese Methode nur einen char aus dem input Stream liest, und somit das \0 noch im stream reinlässt. Bei der nächste input-abfrage findet das Programm noch das \0 im Stream und denkt dass schon was eingegeben wurde, und macht dann lustig weiter mit eine falsche Eingabe.
Für alle wieder:
Wenn ihr aber echt einen character als Eingabe haben wollt, dann könnt ihr das so machen:
Code: Alles auswählen
String input = Terminal.askString("> ");
input = input.substring(0,1).toLowerCase();
if ( input.equals("p") )
{ ... }
else if ( input.equals("d") )
{ ... }
// etc
Ich weiß nicht ob das auch einfacher geht, ich bin schließlich eher n C++ typie.. Da kann man mit dem arrayoperator einfach auf einzelne chars zugreifen. Wenn sowas auch in Java möglich ist würd ich gerne darüber erfahren...
Edit
Alternative:
Code: Alles auswählen
// Lese das erste Zeichen der Eingabe
char choice = Terminal.askString(">").charAt(0);
// Sorge dafuer, dass das Zeichen kleingeschrieben ist
choice = Character.toLowerCase(choice);
// Aktionen: Entweder mit if else...
if ( choice == 'a' ) {
...
} else if ( choice == 'b' ) {
...
} else {
...
}
// ... oder mit switch case
switch ( choice ) {
case 'a':
...
break;
case 'b':
...
break;
default:
...
}