tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
784
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Roman90 Roman90 ist offline Mitglied
    Registriert seit
    Feb 2011
    Beiträge
    10
    Habe mir vorgenommen ein kleine Tic Tac Toe Spiel zu programmieren und bis jetzt lief auch alles super... Nun bin ich an dem Punkt angekommen, an dem ich nach jeder Eingabe das 2D Array, das meine Spielfläche darstellt (3x3), nach einem möglichen Gewinn prüfen lassen muss.
    Habe dazu eine Prüf-Methode geschrieben, die ein true zurück geben soll, falls eine der Gewinnkombinationen richtig ist. Im Methodenrumpf sollten vorerst nur die ersten 2 Zeilen des Spielfeldes geprüft werden, doch merkwürdigerweise bekomme ich, egal welches der 9 Felder ich mit einem char besetze direkt ein true zurück... Wie kann das sein? Vergleiche ich die Chars falsch miteinander ? Bitte um Rat

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    public class Feld {
        private char field [] [] = new char [3] [3];
     
        public Feld(){
            
        }
     
        public char[][] getFeld(){
            return field;
        }
     
        public char getFeldSymb(int posX, int posY){
            return field[posX][posY];
        }
     
        public boolean pruefe(){
            if(field[0][0] == field[0][1] && field[0][1] == field[0][2] ||  //prüft 1.Zeile
               field[1][0] == field[1][1] && field[1][1] == field[1][2]){   //prüft 1.Zeile
                return true;
            }else return false;
        } 
    }
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Ich vermute es liegt daran, dass auch das vergleichen von 2 "leeren" Array-Feldern true zurückgibt:
    Code java:
    1
    2
    
    final char[] c = new char[2];
    if(c[1] == c[0]) System.out.println("true");
    Auch dieser Code wird dir "true" ausgeben. Die "leeren" Felder des Char-Arrays werden automatisch initialisiert – und zwar alle mit dem selben Wert! (das macht Java so…)
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    Roman90 Roman90 ist offline Mitglied
    Registriert seit
    Feb 2011
    Beiträge
    10
    Danke schon mal für deine Antwort. Gut, doch wie kann das vermieden werden? Ich möchte ja nur ein true zurück kriegen, wenn dort auch der selbe Char steht, nicht wenn das Feld frei ist . . . Jemand eine Idee?

    EDIT: hat sich erledigt, danke

    (vergleiche die Felder einfach mit X bzw O und nicht miteinander... Warum bin ich nicht vorher drauf gekommen?....)
    Geändert von Roman90 (17.02.11 um 20:51 Uhr)
     

Ähnliche Themen

  1. Problem mit Array und Vergleich
    Von PhoenixDH im Forum PHP
    Antworten: 15
    Letzter Beitrag: 22.04.09, 06:37
  2. SimpleXML Vergleich mit Array
    Von Metha im Forum PHP
    Antworten: 1
    Letzter Beitrag: 23.11.07, 16:50
  3. Antworten: 10
    Letzter Beitrag: 12.02.07, 21:28
  4. Antworten: 3
    Letzter Beitrag: 29.09.06, 13:48
  5. Array-Vergleich
    Von DeChecka im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 13.07.05, 12:45