Do/While Probleme

ahh vielen dank.

hatte es ohne getestet. kein wunder das es nicht klappte. ;)

dachte, wenn ich nach dem

Code:
if(spielfeld[i][j] == ' ')

es direkt zurück gebe würde es reichen.

nun klappts aber


ne in der aufgabe steht nix davon, das man es getrennt eingibt.
in dem asIntger Javadoc steht ja auch als bspl.

Aufruf z.B.: int i; i = asInteger(“12”); // i hat den Wert 12

und 12 denk ich mal ist die 2 reihe letzte spalte mit gemeint. also sollte man es in einer Zeile schon angeben.
 
Ah, jetzt wieder daran erinnert, dass es ja um TicTacToe geht :D

Prüf zuerst, ob auch wirklich zwei Ziffern eingegeben wurden (das int ist >9 und <100).
Dann bekommst du die erste Ziffer mit "i/10" und die zweite mit "i%10".

Gruß
 
jein oder? geht ja darum das er bei der ersten spalte meckert, weil die ja mit 00 01 02 angewählt wird und java die 0 dnn immer unterm tisch kehrt wenn er es vom string in ein int umwandelt und es als 1 2 3 sieht. oder versteh ichs grad anders?
 
Bitte die Netiquette beachten, Punkt 15. Danke.

Und doch, das geht schon. Probiers doch einfach mal aus.

Angenommen, du gibst 02 ein.
Die fertige Funktion nimmt das als String und wandelt es in int um.
Wenn du das im main etc. dann als "int i" hast,
bekommst du mit "i/10" 0 und mit "i%10" 2.
0 und 2.
02.

Du solltest nur zusätzlich noch prüfen, ob eine passende Zahl eingegeben wurde.
Nicht 89123 oder so.
 
Wo finde ich die Netiquette ?! ^_^

naja habs nun geschafft..

Code:
public static char dasSpiel(char Spieler)  {
int reihe = 0;
int spalte = 0;
boolean EingabeCheck = false;
char sieger = ' ';
int Umwandlung = 0;
String Umwandlung1;
String Eingabe;
// int Umwandlung;

       System.out.println("Willkommen bei Tic Tac Toe");
       zeigeSpielfeld();
       System.out.println("Bitte geben sie ein Feld ein mit Zahl,Zahl.. z.B 0,2");
       System.out.println("0,2 ist z.B oben Rechts, 0,1 ist oben in der Mitte und 0,0 oben Links");
        do {   
            do {
                System.out.println("Spieler "+Spieler+" ist am Zug");
                Eingabe = getLine();
                Umwandlung = asInteger(Eingabe);
                if (Umwandlung == -1111) {
                    System.out.println("Ungültige Eingabe. Bitte versuch es erneut");
                     EingabeCheck = true;
                    } // if end
                else {
                    Umwandlung1 = Integer.toString(Umwandlung);
                
                if (Umwandlung1.length() == 1) {
                    Umwandlung1 = 0+Umwandlung1;
                } // if end
                    reihe = Integer.parseInt(Umwandlung1.substring(0,1));
                    spalte = Integer.parseInt(Umwandlung1.substring(1,2));
                    EingabeCheck = EingabePruefen(reihe, spalte);
                } //Ende Else 
            } // ende 2. Do
                while (EingabeCheck == true);
                    spielfeld[reihe][spalte] = Spieler;
                    Spieler = SpielerZug(Spieler);
                    zeigeSpielfeld();
        } // ende 1. Do       
               while (Sieger() == ' ');
               sieger = Sieger();
               if (sieger == '?') {
                        System.out.println("Unentschieden");
                    }
                    else {
                             System.out.println("Spieler "+sieger+" hat gewonnen");
                            }
                       
                   
                   
   return Spieler;         
}

so funktioniert alles reibungslos in der Funktion und er gibt alles zurück. Sollte vlt nurnoch ne überprüfung machen, ob reihe und spalte auch zwischen 0 2 liegen und nicht darüber. Aber davon stand nix in der aufgabe xD
 
Wo finde ich die Netiquette ?! ^_^
Links dazu gibts immer am unteren Seitenrand (grauer Bereich) oder in meiner Signatur.

Zum Programm::
Würde vllt. nicht dieses -1111 nehmen.
Entweder einen gebräuchlicheren Errorwert (zB. -1),
oder die Exception raus lassen (dafür ist sie ja da),
oder in der Funktion bei einem fehlerhaften Wert noch eine Eingabe verlangen.

Noch ein Tipp zum Forum:
Wenn du statt [code] [code=java] nimmst, wirds auch noch farbig :)
(Liste der Möglichkeiten gibts auch, in der Nähe der Netiquette :D)

Gruß
 
Zurück