Implementieren?

Stefan K

Mitglied
Also folgendes ich hab jetzt ein 8x8 mal großes array programmiert und auch schon
das array befüllt, ich scheiter an etwas einfacherem, unzwar wie implementiere ich richtig, bzw wie setzt ich "{" und "}" richtig?

public class Bauer extends Spieler{ // die fehlermeldung ist hier "Spieler" can not find symbol

public Bauer = new Bauer(); // hier ist es: <identifier> expected



Piece[][] gameField = new Piece[8][8];


//Figuren von Spieler 1
gameField[0][0] = new Turm(); // und hier sagt er: ']' expected
gameField[0][1] = new Springer();

}

so sieht das bei mir aus..
Ich hoffe ihr könnt mir weiterhelfen 🙂
schonmal danke
 
Java:
 package grundlagenuebungen;

public class Chess {
  
     public static void main(String[] args) {

       
        
        int myArray[][] = new int[8][8]; // gebildetes Array, welches durch das [8][8] also ein 2 dimensionales Array das 
                                         // aus 8 mal 8 Feldern besteht und somit das Grundgerüst des Schachbretts ausmacht
              
        myArray[0][0] = 1;               //  definiert myArray[0][0], als erstes Feld des Schachbretts
        myArray[0][1] = 2;               // ... usw
        myArray[0][2] = 3;
        myArray[0][3] = 4;
        myArray[0][4] = 5;
        myArray[0][5] = 6;
        myArray[0][6] = 7;
        myArray[0][7] = 8;
        
        myArray[1][0] = 9;
        myArray[1][1] = 10;
        myArray[1][2] = 11;
        myArray[1][3] = 12;
        myArray[1][4] = 13;
        myArray[1][5] = 14;
        myArray[1][6] = 15;
        myArray[1][7] = 16;
        
        myArray[2][0] = 17;
        myArray[2][1] = 18;
        myArray[2][2] = 19;
        myArray[2][3] = 20;
        myArray[2][4] = 21;
        myArray[2][5] = 22;
        myArray[2][6] = 23;
        myArray[2][7] = 24;
        
        myArray[3][0] = 25;
        myArray[3][1] = 26;
        myArray[3][2] = 27;
        myArray[3][3] = 28;
        myArray[3][4] = 29;
        myArray[3][5] = 30;
        myArray[3][6] = 31;
        myArray[3][7] = 32;
        
        myArray[4][0] = 33;
        myArray[4][1] = 34;
        myArray[4][2] = 35;
        myArray[4][3] = 36;
        myArray[4][4] = 37;
        myArray[4][5] = 38;
        myArray[4][6] = 39;
        myArray[4][7] = 40;
        
        myArray[5][0] = 41;
        myArray[5][1] = 42;
        myArray[5][2] = 43;
        myArray[5][3] = 44;
        myArray[5][4] = 45;
        myArray[5][5] = 46;
        myArray[5][6] = 47;
        myArray[5][7] = 48;
        
        myArray[6][0] = 49;
        myArray[6][1] = 50;
        myArray[6][2] = 51;
        myArray[6][3] = 52;
        myArray[6][4] = 53;
        myArray[6][5] = 54;
        myArray[6][6] = 55;
        myArray[6][7] = 56;
        
        myArray[7][0] = 57;
        myArray[7][1] = 58;
        myArray[7][2] = 59;
        myArray[7][3] = 60;
        myArray[7][4] = 61;
        myArray[7][5] = 62;
        myArray[7][6] = 63;
        myArray[7][7] = 64;
        
     }
         public class Bauer extends Spieler{

         public Bauer = new Bauer();
         
                 
         }
      
         Piece[][] gameField = new Piece[8][8];{
         
         
        //Figuren von Spieler 1
         gameField[0][0] = new Turm(); // das Programm weiß nun die Anfangsstellung der 2 Türme von Spieler 1
         gameField[0][1] = new Springer(); // des Springers usw..
         gameField[0][2] = new Laeufer();
         gameField[0][3] = new Dame();
         gameField[0][4] = new Koenig();
         gameField[0][5] = new Laeufer();
         gameField[0][6] = new Springer();
         gameField[0][7] = new Turm();
         gameField[1][0] = new Bauer();
         gameField[1][1] = new Bauer();
         gameField[1][2] = new Bauer();
         gameField[1][3] = new Bauer();
         gameField[1][4] = new Bauer();
         gameField[1][5] = new Bauer();
         gameField[1][6] = new Bauer();
         gameField[1][7] = new Bauer();
         
         //Figuren von Spieler 2
         gameField[7][0] = new TURM(); 
         gameField[7][1] = new SPRINGER();
         gameField[7][2] = new LAEUFER();
         gameField[7][3] = new DAME();
         gameField[7][4] = new KOENIG();
         gameField[7][5] = new LAEUFER();
         gameField[7][6] = new SPRINGER();
         gameField[7][7] = new TURM();
         gameField[6][0] = new BAUER();
         gameField[6][1] = new BAUER();
         gameField[6][2] = new BAUER();
         gameField[6][3] = new BAUER();
         gameField[6][4] = new BAUER();
         gameField[6][5] = new BAUER();
         gameField[6][6] = new BAUER();
         gameField[6][7] = new BAUER();
         
         
        
         }     
         
         
     }
 
Code:
public class Bauer extends Spieler{ // die fehlermeldung ist hier "Spieler" can not find symbol

Er kann die Klasse Spieler also nicht finden.. vielleicht nicht importiert oder im anderen Verzeichnis?

Code:
 public Bauer = new Bauer(); // hier ist es: <identifier> expected

Dein Bauer braucht einen Namen.. also
Code:
 public Bauer bauer = new Bauer(); // hier ist es: <identifier> expected
 
Also mal abgesehen, dass das extrem schlechter Programmierstil ist, fällt dir hier etwas auf?

Java:
public class Bauer extends Spieler{
         public Bauer = new Bauer();   
}

Außerdem fehlt die Klasse Spieler
 
Ja das array hät ich auch mit einer for-schleife befüllen können aber naja.. so siehts übersichtlicher aus.. bin halt noch am anfang, wird noch besser 🙂

das was pro2 gesagt hat: das ich vergessen hab dem "bauer" einen namen zu geben?

wie erstell ich denn die Klasse spieler1?

Java:
 public class Bauer extends Spieler1{

         public Bauer Bauer = new Bauer();
wenn ich das so ab greift er dann auch darauf zurück innerhalb meines arrays also:

Java:
gameField[1][1] = new Bauer();
 
Und noch was:

Java:
int array [][] = new int[8][8];
int index = 1;
for(int i = 0; i < array.length; i++){
	for(int j = 0; j < array[i].length; j++){
		array[i][j] = index++;
	}
}

Mfg
 
Hi

mit Schleifen könnte man das Array einfacher füllen, zum Beispiel
Java:
        int board = 8;
        int counter = 0;
        int myArray[][] = new int[board][board];
        for (int col=0;col<board;col++)
            for (int row=0;row<board;row++)
            {   counter++;
                myArray[col] [row] = counter;
                System.out.println(col+" "+row+" "+counter);
            }

So könnte man (mit 9 statt 8) auch ein Shogi-Brett einfach durchnumerieren.

Müsste es nicht heißen "Bauer extends Piece" ? (ich nehme mal an, dass die Figur Bauer gemeint ist, und nicht ein Spieler, der zufällig Bauer ist 😀)

Auch auf die Groß-/Kleinschreibung achten, Java ist ja case-sensitive...

Wahrscheinlich am besten für jede Figurenart eine eigene Klasse erstellen (in jeweils einem eigenen File).

Hmm, mir fällt gerade ein, da gibt es ja Weiß und Schwarz. Das müsste man vermutlich berücksichtigen (aber nicht über Klein- oder Großschreibung), Piece könnte eine Eigenschaft Color bekommen. Das nur so als Idee...

Ich dachte nun mehr an die Richtung: Klasse Piece (mit der Eigenschaft Color), Bauer extends Piece,
Springer extends Piece, usw. (und Spieler einfach mit Color assoziieren) Man kann es natürlich auch anders machen.

viele Grüße

Olli
 
Zuletzt bearbeitet:
Das Array zur Nummerierung der Felder ist nicht sinnvoll. Schreib dir lieber so eine Methode:

Java:
public static int fieldNumber(int row, int column) {
    return row * 8 + column + 1;
}

Die 8 solltest du übrigens nur an einer Stelle in der Anwendung als Konstante haben.
 

Neue Themen


Zurück
Oben