Array Abfrage will nichts so wie ich will....

phreeak

Mitglied
Tag,

ne Abfrage eines Array möchte nicht so wie ich will..


Die Methode in der Klasse Spielfeld wird wie folgt aufgerufen,

Java:
if (feld.spielfeldVoll(eingabe)) {
             istGueltig = false;
             consolenausgaben.BildschirmAusgaben("ReiheVoll");
        }

die Methode,

Java:
public boolean spielfeldVoll(int eingabe) {
    boolean istVoll = true;
              for (int i = 5; i >=0; i--) {
                if (spielfeld[i][eingabe]== ' ') {
                 istVoll = false;
                }
            } 
    return istVoll;
    }

spielfeld ist als klassen variable deklariert, also

Java:
public class Spielfeld {
       
       char[][] spielfeld = new char [6][7];
..
....
......

so, standart Wert true, also das die reihe "voll" ist.
Wenn er die Reihe durch geht und er finden ein leeres Feld bzw. "leerzeichen" soll er istVoll auf false setzen, da die Reihe ja nicht voll ist. Dies macht er aber nicht.

Grad kein Schimmer, wieso er nicht will..

Zuvor ging es.

Hatte Anfangs das komplette Programm in einer Klasse, wo spielfeld immer an die Methoden übergeben wird. (Das Array wurde am Anfang definiert).. jetzt nachdem ich mein Programm in verschiedenen Klassen aufgeteilt habe, mag er nicht mehr.
 
Moin,


Und das heißt was :confused:

Wo und wie wird "spielfeld" denn gefüllt ?
Wieso ist es sicher, dass dort KEIN Blank vorkommt ?

Gruß
Klaus

das spielfeld wird in einer anderen Methode mit leerzeichen gefült und auf der Console ausgegeben. (leerzeichen, damit die | und __ nicht so gequetscht aussehen). In der Abfrage wird ja auf nen leerzeichen abgefragt ob ne reihe voll ist (mitm char) oder leer ist (bzw. nen leerzeichen ist)

@Herbertu, klappt leider nicht,

er führt die methode nun aus, aber erkennt nicht wenn ne reihe voll ist.


Zuvor hat er die methode aus ausgeführt, hat aber immer "reihe voll" ausgegeben obwohl nur 1 feld belegt war.
 
Zuletzt bearbeitet:
was meinst mit blank?! jedenfalls sagte er, dass die reihe voll war, obwohl nix drinnen ist, halt nur, die leerzeichen, mit dennen ich das Feld gefüllt habe. Darauf frage ich ja auch ab...


Komischerweise klappt es ja im ersten Programm, wo alles in einer Klasse steht. Nach der aufteilung klappt es aber nimmer. <.<
 
Moin,

was meinst mit blank?!
na, Leerzeichen (auf Englisch) :-D

jedenfalls sagte er, dass die reihe voll war, obwohl nix drinnen ist, halt nur, die leerzeichen, mit dennen ich das Feld gefüllt habe. Darauf frage ich ja auch ab...

Also: Dein ' ' steht nur mal für ein Blank (= Leerzeichen) oder in HEX 0x20 und ist was anderes als 0x00 oder eben '\u0000'.

Worauf soll denn dort nur geprüft werden :confused:

Gruß
Klaus
 
Also jetzt bin ich auch verwirrt.

Wenn du auf ein LEERZEICHEN überprüfen willst, wäre meins natürlich auch falsch. Prüfst du, ob überhaupt irgendwas gesetzt ist, wäre meins richtig.

Kannst du es bitte nochmal SAUBER formulieren (Eventuell kannst du auch einfach nur mehr Code einfügen, damit es nachvollziehbar wird, was du willst)
 
Kp :D

ich fülle das Spielfeld so

Java:
    public void setzeSpielfeld() {
               
               for(int i = spielfeld.length - 1; i >= 0; i--) {
          for(int j = spielfeld[i].length - 1; j >= 0; j--) {
              spielfeld[i][j] = ' ';
          }
       }
       zeigeSpielfeld();      
    }

also mitm normalen leerzeichen.....

hier,

Java:
    public int setzeSpielstein(int feld, char spieler) {
        boolean istWahr = false;
        int reihe = 0;
        for (int i = spielfeld.length - 1; i >= 0 && !istWahr; i--) {
            if (spielfeld[i][feld]== ' ') {
                spielfeld[i][feld] = spieler;
                istWahr = true;
                reihe = i;
            }
        }
        zeigeSpielfeld(); 
        return reihe;
    }

frag ich die reihe ebenfalls ab, um den Spielstein zusetzen..er geht die reihe von unten z.B 5,0 nach oben hoch und setzt den Spielstein erst dann, wenn spielfeld[x][y] = ' ' ist... klappt hier wunderbar.

aber das hier ist eh das kleinste Problem.. Hab auch noch Probleme mit meiner Subklasse (Kapier das mit der Subklasse noch nicht wirklich)

Also jetzt bin ich auch verwirrt.

Wenn du auf ein LEERZEICHEN überprüfen willst, wäre meins natürlich auch falsch. Prüfst du, ob überhaupt irgendwas gesetzt ist, wäre meins richtig.

Kannst du es bitte nochmal SAUBER formulieren (Eventuell kannst du auch einfach nur mehr Code einfügen, damit es nachvollziehbar wird, was du willst)

nein soll ur überprüft werden ob ein LEERZEICHEN drinnen ist...
 
So, man(! :D). Nochmal neuer Post.

Also es geht, wie ich gerade lesen konnte ja, wenn alles in einer Klasse steht.

Dann zeig mal deine Klassen^^
 
Zurück