enum-Klassen
-
Hi folks,
ich habe zwei enum-Klassen Dateien und bekomms nicht hin, die eine der anderen "bekannt" zu machen: Hier die Dateien:
Color.java
//Repräsentiert die Farbe der Figur enum Color { White, Black }
Type.java
//Repräsentiert die Art einer Figur enum Type { Pawn, Rook, Knight, Bishop, Queen, King; //Gibt Auskunft, ob die Figur grundsätzlich von from nach to ziehen könnte boolean canMove(Position from, Position to, Color color) { //Ausgangsposition darf nicht die Endposition sein, //denn sonst könnte man sich vor Zügen "drücken" if ( from.getRow() == to.getRow() && from.getColumn() == to.getColumn() ) return false; //Eigenschaften des Bauern if ( this == Pawn ) { final int distance = Math.abs(from.getRow() - to.getRow()); //Anzahl der Felder, die der Bauer ziehen soll //Mehr als zwei Schritte darf der Bauer nie ziehen if ( distance > 2 ) return false; //Ist es dem Bauern abhängig von seiner Farbe dieser Zug möglich? //Bauern dürfen nicht nach links oder rechts ziehen! if ( Math.abs(from.getColumn() - to.getColumn()) != 0 ) return false; //weisse Bauern dürfen nur nach "oben", schwarze nur nach "unten" ziehen! if ( color == White ) if ( from.getRow() > to.getRow() ) return false; else if ( from.getRow() < to.getRow() ) return false; //steht der weisse oder der schwarze Bauer auf dem letzen Feld in vertikaler Richtung? //wen dem so ist, ist der Zug ungültig if ( (from.getRow() == 0 || from.getRow() == 7) && distance > 0 ) return false; //Wenn der Bauer auf Ausgangsposition steht, darf er 2 Schritte machen //Stellung von schwarzen und weissen Bauern muss unterschieden werden! if ( color == White ) if ( from.getRow() == 1 && distance <= 2 ) return true; else if ( from.getRow() == 6 && distance <= 2 ) return true; //Wenn der Bauer nicht auf der Ausgangsposition steht, darf er höchstens ein Feld ziehen! //Stellung von schwarzen und weissen Bauern muss unterschieden werden! if ( color == White ) if ( from.getRow() != 1 && distance > 1) return false; else return true; else if ( from.getRow() != 6 && distance > 1) return false; else return true; } //Eigenschaften des Turmes if ( this == Rook ) { //Der Turm darf sich pro Zug nur in einer Spalte oder einer //Zeile bewegen! //Entweder ändert sich nur die Zeilenkooridinate oder nur //die Spaltenkoordinate, aber nicht beide! if ( from.getRow() != to.getRow() && from.getColumn() != to.getColumn() ) return false; else return true; } //Eigenschaften des Springers if ( this == Knight ) { } } }
Wenn ich nun kompiliere
javac Type.java
, bekommen ich die Fehlermeldungen
Type.java:43: cannot find symbol symbol : variable White location: class Type if ( color == White ) ^ Type.java:57: cannot find symbol symbol : variable White location: class Type if ( color == White ) ^ Type.java:66: cannot find symbol symbol : variable White location: class Type if ( color == White ) ^ 3 errors
Was mache ich falsch?
Danke für alle Antworten!
-
if (color == Color.WHITE)
-
Kleiner Fehler, große Wirkung! Bin Javaneuling!
Thanks so long!
-
was heißt auf englisch "einen Bauer schlagen?"
.
.
.
.
.
"to pwn a pawn" *scnr