# Was los mit dieser Aufgabe? Arrays mit Schachbrettmustern?



## RememberdiAlamo (10. Dez 2013)

Hallo, liebe Comunity, 
Ich komme mit dieser Aufgabenstellung nicht klar: Erzeugen Sie ein zweidimensionales Array der größe 8x8 und füllen sie es mit einem Schachbrettmuster.

Also Schachbrett hat ja 8x8 Felder somit gehts ja noch klar bis jetzt: 


```
public static void main (String[] args){
	int [][] feld;
	feld = new int [8][8];
```

Weiß jemand wie ich diese AUfgabe hier machen soll? Wenn sowas im Praktikum kommt bin ich geliefert, denn nunja...fehlt die Durchsicht dafür, mal wieder. Und irgendwie hilft da kein :rtfm: Wir hatten imMo nichts mit G.U.I oder so in dieser Richtung. Wär jemand so freundlich mir mal Codeschnippsel zu hinterlassen? Ich weiß nicht ob man mir das so einfach erklären kann :bloed:


----------



## Gucky (10. Dez 2013)

Welche IDE benutzt du? In eclipse kann man sich eine GUI einfach zusammenklicken. Einfach auf new, dann visual class und dann die Art aussuchen (ein AWT Frame wird reichen).
Das Zeichnen ist kein Problem. Dazu überschreibst du die paint(Graphics) Methode. Guck dir dazu mal Graphics an.
Die Schachbrettfelder sind auch kein Problem. Du machst zwei ineinander verschachtelte Schleifen, mit deren Variablen ein "Grundwert" multipliziert wird. Das Ergebnis daraus wird der fillRect(int, int, int, int) Methode vom Graphics übergeben. Zusätzlich muss du noch abwechselnd (z. B. mit einer Variable, die immer einen hoch gezählt wird , wenn du ein Feld gemalt hast. Ist der Rest einer Division durch 2 0, so ist das Feld schwarz. Ist der Rest 1, so ist das Feld weiß oder andersrum.


----------



## RememberdiAlamo (10. Dez 2013)

wie gesagt: Hatten nichts mit GUI. Und ich will einfach nur das Praktikum bestehen, also bitte so einfach wie möglcih erklären  
Was wir können müssen bis jetzt... Arrays, Schleifen, Fallunterscheidungen, Typecasts und alles was unter diesem Niveau fällt. ich weiß voll lahm, aber nunja, so sind 1. Semester halt, die nur Elektrotechnik studieren


----------



## Gucky (10. Dez 2013)

Was genau hast du noch nicht verstanden?


----------



## X5-599 (10. Dez 2013)

Eventuell soll auch einfach nur z.B. Nullen und Einsen in ein zwei Dimesnionales Array geschrieben werden? Also 0=Schwarz und 1=Weiss.


----------



## Gucky (10. Dez 2013)

@X5-599
Das müsste dann auch wieder befüllt werden. Da erst mal nur das Brett gezeichnet werden soll, denke ich, dass mein Ansatz einfacher ist. Wenn mit dem Brett weitergearbeitet wird, dann ist deiner besser.


----------



## X5-599 (10. Dez 2013)

Das würde aber am meisten Sinn machen. Der TS hat ja geschrieben, dass sie mit GUI noch nichts gemacht haben. Nur Grundlegendes wurde bisher behandelt.
Und wenn dann so eine Aufgabe gestellt wird, soll vermutlich mit Schleifen/ifs/modolo etc gearbeitet werden. Einfach um die Sprache besser kennen zu lernen und Algorithmen-Erstellungen zu üben.


----------



## jfkoernjf (10. Dez 2013)

Öhm, vielleicht sollst du ja auch sowas machen:

```
public static void main (String[] args){
	    int [][] feld;
	    feld = new int [8][8];
	    int k = 0;
	    for (int i = 0; i < 8; i++){
	    	for(int j= 0; j < 8;j++){
	    		feld[i][j] = k++ % 2; 
	    	}
	    	k++;
	    }
	    
	    for (int i = 0; i < 8; i++){
	    	for(int j= 0; j < 8;j++){
	    		System.out.print(feld[i][j]); 
	    	}
	    	System.out.println("");
	    }
	}
```

Geht bestimmt schöner, aber ein wenig was machen sollst du ja auch noch  .
Anstatt 1 und 0 kannst du ja noch ein schönes ASCII-Symbol nehmen.


----------



## RememberdiAlamo (10. Dez 2013)

X5-599 hat gesagt.:


> Das würde aber am meisten Sinn machen. Der TS hat ja geschrieben, dass sie mit GUI noch nichts gemacht haben. Nur Grundlegendes wurde bisher behandelt.
> Und wenn dann so eine Aufgabe gestellt wird, soll vermutlich mit Schleifen/ifs/modolo etc gearbeitet werden. Einfach um die Sprache besser kennen zu lernen und Algorithmen-Erstellungen zu üben.



genau. Ich verstand die Aufgabenstellung überhaupt nicht, WIE ich das machen soll. Ich hab grad nachgeguckt, wir hatten sowas gemacht, aber mit Schleifen. 

```
class Aufgabe83{
    public static void main (String args[]){
             
            String s1 = "  ";
            String s2 = "||";
            
            for (int i = 0; i< 8;i++){
            	for (int j = 0; j <8 ;j++){
            		if (i % 2 != j % 2)
						System.out.print(s1);
            		else
            			System.out.print(s2);
           		}
           		
           		System.out.print("\n");
           }
    }
    
      
}
```

Muss das jetzt also irgendwie mit Arrays machen. Hmm...


----------



## KSG9|sebastian (10. Dez 2013)

Der Code den du gepostet hast erfüllt die komplette Aufgabenstellung durch Änderung von 4 Codezeilen...also überleg selbst und bei Problemen helfen wir..


----------



## Lonsdaleit (11. Dez 2013)

*Ich komme mit dieser Aufgabenstellung nicht klar: Erzeugen Sie ein zweidimensionales Array der größe 8x8 und füllen sie es mit einem Schachbrettmuster.*

Ich bin überzeugt davon, dass der Ansatz mit "0" für Schwarz und "1" für weiß bzw. umgekehrt die Erwartung der Aufgabe erfüllt. Davon ein Schachbrett zu zeichnen ist an keiner Stelle die Rede.

Zu beachten wäre noch, dass bei einem Schachbrett aus Sicht eines Spielers immer ein weißes Feld in der rechten unteren Ecke befindet.

Sinnvoller Weise startet man also bei [0][0] mit weiß und kommt bei [8][8] wieder bei weiß an.

Das Schachbrettmuster wäre dann von oben links nach unten rechts hin aufgebaut.

Der Rest ist mit 2 for-Schleifen lösbar.

Gruß


----------

