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 😃


Anmelden zum Antworten