Schachbrett mit N x N Feldern

paukenpaule

Mitglied
Hallo,

ich muss ein Schachbrett mit NxN Feldern erstellen, mit gleichbleibenden Gesamtmaßen, die einzelnen Felder müssen mitskalieren.

Mit google habe ich folgenden Code für die Erstellung eines Schachbretts gefunden:
Java:
public class Schachbrett extends Applet {
   //Das Schachbrett wird so gezeichnet:
   //Zuerst wird ein schwarzes Brett 
   //(inkl. 2 Pixel breiten Rahmen)
   //gezeichnet. Danach werden die weißen Quadrate gesetzt
   
   final int x = 50; //x-Koordinate der linken oberen Ecke 
                     //(ohne Rahmen)
   final int y = 50; //y-Koordiante der linken oberen Ecke 
                     //(ohne Rahmen)


   public void paint (Graphics g) {
      //Zeichnen des grossen shcwarzen Quadrats (inkl. Rahmen)
      g.setColor(Color.BLACK);
      g.fillRect(x-2,y-2,164,164);
      //Zeichnen der weissen Quadrate
      g.setColor(Color.WHITE);
      //zuerst die weise Quadrate, die in der ersten 
      //Spalte beginnen
      for (int i=0; i<4; i++)
         for (int j=0; j<4; j++)
             g.fillRect(x+j*40,y+i*40, 20,20);
      // dann die, die in der zweiten Spalte beginnen
      for (int i=0; i<4; i++)
         for (int j=0; j<4; j++)
             g.fillRect(x+20+j*40,y+20+i*40, 20,20);
   }
}

Allerdings ist dieses ja nicht veränderbar.

Ich habe versucht eine Main-Methode einzubauen damit ich die Werte durch ein N ersetzen kann
Java:
	public static void main(String[] args) {
			
		int n = Integer.parseInt(args [0]);

Allerdings erkennt Java mein deklariertes n nicht in der paint Methode, wie kann ich diese mit einander verbinden?

Gruß
 
G

Gelöschtes Mitglied 20545

Gast
Ich kann auch nicht erkennen, dass n irgendwo verwendet würde oO

Zeig mal den gesamten Quellkod.
 

paukenpaule

Mitglied
Java:
import java.applet.Applet;
import java.awt.*;


public class Schachbrett extends Applet {
   //Das Schachbrett wird so gezeichnet:
   //Zuerst wird ein schwarzes Brett (inkl. 2 Pixel breiten Rahmen)
   //gezeichnet. Danach werden die weißen Quadrate gesetzt
   
   final int x = 0; //x-Koordinate der linken oberen Ecke (ohne Rahmen)
   final int y = 1; //y-Koordiante der linken oberen Ecke (ohne Rahmen)


   public void paint (Graphics g) {
      //Zeichnen des grossen shcwarzen Quadrats (inkl. Rahmen)
      g.setColor(Color.BLACK);
      g.fillRect(x-4,y-2,164,140);
      //Zeichnen der weissen Quadrate
      g.setColor(Color.RED);
      //zuerst die weise Quadrate, die in der ersten Spalte beginnen
      for (int i=0; i<n; i++)
         for (int j=0; j<n; j++)
             g.fillRect(x+j*40,y+i*40, 20,20);
      // dann die, die in der zweiten Spalte beginnen
      for (int i=0; i<n; i++)
         for (int j=0; j<n; j++)
             g.fillRect(x+20+j*40,y+20+i*40, 20,20);
  
   public static void main(String args[]){
	  
    	  int n = Integer.parseInt(args[0]);
	  
      }
}

Also der Gesamte Quellcode funktioniert auch noch nicht, ich möchte erstmal nur die paint Methode der main Methode zuordnen, damit ich später "rumprobieren" kann.

Ich bin nen absolut blutiger Anfänger auf ner Uni die einem so ziemlich gar nichts erklärt:toll:

PS: hier mal nen beispiel, damit ihr seht wie es aussehen soll. Einmal für n=5 und n=8 zb. Es scheitert aber schon daran, das in den Zeilen der paint methode, n als nicht deklariert dasteht.
 
Zuletzt bearbeitet:
G

Gelöschtes Mitglied 20545

Gast
Dann solltest du folgendes, kostenloses, auch downloadbares Buch lesen: Galileo Computing :: Java ist auch eine Insel (8. Auflage) oder fünfzig euro investieren in "Java von Kopf bis Fuß" wenn du so wie ich etwas begriffsstutzig bist ;)

Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 6 Eigene Klassen schreiben
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 6.2 Privatsphäre und Sichtbarkeit

Variablen haben einen Gültigkeitsbereich, in dem du auf sie zugreifen kannst. Dieser Gültigkeitsbereich kann eine Klasse oder eine Methode sein, außerhalb kennt man die Variable eben nicht. Wenn du eine Variable in einer Methode (wie hier main) deklarierst, ist sie auch nur dort gültig/bekannt.

Möchtest du nun innerhalb deiner Klasse auf eine Variable zugreifen, musst du sie auch dort deklarieren, beschreiben/initialisieren kannst du sie woanders. Die beiden Variablen x und y wurden hier ja außerhalb der Methoden deklariert und auch initialisiert. Dort wo die stehen, musst du auch dein n deklarieren.
 
Zuletzt bearbeitet von einem Moderator:

paukenpaule

Mitglied
Habe nun mit Hilfe von Googel und einem Programmierass der mir versucht hat, den Code zu erklären folgendes gefunden:

Java:
public class Schachbrett {
    public static void main(String[] args) {  
    	
    	int felder = Integer.parseInt(args[0]); 
        StdDraw.setXscale(0, felder); 
        StdDraw.setYscale(0, felder); 
        
        for (int i = 0; i < felder; i++) { 
            for (int j = 0; j < felder; j++) { 
                if ((i + j) % 2 != 0) StdDraw.setPenColor(StdDraw.RED); 
                else                  StdDraw.setPenColor(StdDraw.BLACK); 
                StdDraw.filledSquare(i + .5, j + .5, .5); 
            } 
        } 
        StdDraw.show(); 
    } 
 
}

Nun ist folgendes Problem, dass IMMER das erste obere linke Kästchen rot sein muss.
Hat jemand eine Idee?
 

eRaaaa

Top Contributor
....;( :autsch:

Probiers doch mal
Java:
 if ((i + j) % 2 == 0)

oder einfach die Farben tauschen? :bae: :autsch:
 
T

Tomate_Salat

Gast
ich hab ncoh nie wirklich mit applets gearbeitet...nur mal reingesehen...aber verwendet man in applets nicht eine [c]init();[/c] anstatt einer [c]main(String[] args);[/c] ?!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Der weise Inder und das Schachbrett Java Basics - Anfänger-Themen 8
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
B Schachbrett Java Basics - Anfänger-Themen 2
F Best Practice Schachbrett Läufer Java Basics - Anfänger-Themen 11
I Schachbrett aus beliebigen Strings erstellen Java Basics - Anfänger-Themen 3
J Matrix für Schachbrett Java Basics - Anfänger-Themen 6
P Das Schachbrett - Reis Problem Java Basics - Anfänger-Themen 21
H Schachbrett erkennen Java Basics - Anfänger-Themen 19
J Schachbrett mit Hilfe von while-Schleifen Java Basics - Anfänger-Themen 10
J Schachbrett zeichnen Java Basics - Anfänger-Themen 9
E einfaches Schachbrett generieren Java Basics - Anfänger-Themen 9
P Schachbrett Java Basics - Anfänger-Themen 7
P Schachbrett Spiel Nr. 01 Java Basics - Anfänger-Themen 17
B Schachbrett Java Basics - Anfänger-Themen 17
D Schachbrett frage Teil2 Java Basics - Anfänger-Themen 15
D Schachbrett frage Java Basics - Anfänger-Themen 3
D schachbrett aufbauen Java Basics - Anfänger-Themen 29
I Springer auf Schachbrett Java Basics - Anfänger-Themen 18
M Schachbrett Java Basics - Anfänger-Themen 31
J Schachbrett Java Basics - Anfänger-Themen 6
B [Java] Schachbrett Frage Java Basics - Anfänger-Themen 11
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
K Warum sind Werte in den Feldern ? Java Basics - Anfänger-Themen 2
N Klassen Rekursion mit Feldern von Objekten Java Basics - Anfänger-Themen 14
I Iteration in Feldern Java Basics - Anfänger-Themen 2
H Iterationen in Feldern Java Basics - Anfänger-Themen 3
I Problem mit Feldern Java Basics - Anfänger-Themen 3
D Rekursion mit Feldern - ich raffe es nicht :( Java Basics - Anfänger-Themen 6
E Inhalt von Option Feldern auslesen? Java Basics - Anfänger-Themen 2
A Frag zu Feldern mit den Typ einer Klasse Java Basics - Anfänger-Themen 6
V Zusammenführen von Feldern Java Basics - Anfänger-Themen 9
B Ausgabe von Non-static Feldern Java Basics - Anfänger-Themen 8
L Arrays mit unbestimmt vielen Feldern Java Basics - Anfänger-Themen 7
G java.lang.reflect -> Werte von Feldern ausgeben Java Basics - Anfänger-Themen 11
Z Terminkalender mittels Klassen und Feldern Java Basics - Anfänger-Themen 2
G Variables Initalisieren von Feldern im Fenster Java Basics - Anfänger-Themen 10
Z Beispiel Würfelspiel mit Verwendung von Feldern Java Basics - Anfänger-Themen 7
G Problem bei Anwendung von Feldern Java Basics - Anfänger-Themen 5
W Vorgänger bzw. Nachfolger von String Feldern Java Basics - Anfänger-Themen 12
M Feld von Feldern Java Basics - Anfänger-Themen 5
G Auswahl in DropDown feldern in JSP seiten als Action Aufruf Java Basics - Anfänger-Themen 2
E Problem bei Ausgabe von Feldern und Methoden! Java Basics - Anfänger-Themen 2
J Java zum Anzeigen von Notes RT-Feldern unter Windows Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben