Java Schachbrettmuster

XHotSniperX

Lt. Junior Grade
Registriert
Jan. 2008
Beiträge
472
Hallo Leuteee :)

Ich soll in einem vorgegebenen Fenster (500*500) das gesamte Feld mit einem Schachbrettmuster zeichnen (Felder 20*20 gross). Man soll das ganze mit zwei verschachtelten Schleifen machen und als Hinweis steht auch, dass man den Operator Modulo benutzen soll.

Ich bin im Moment so weit gekommen, wie im Bild zu sehen und dem folgenden Code. Ist aber leider noch kein Schachbrettmuster.. könnt ihr mir bitte helfen?

schachsunv.jpg



Code:
package Praxis;

import Praxis.ch.unibas.informatik.cs101.ImageWindow;

public class BasicDrawingSchachbrett {

  public static void main(String args[]) {
    //creates a new instance of the ImageWindow Class
    //with a viewable image area of 500x500 pixels
    ImageWindow w = new ImageWindow(500,500);

    //opens the corresponding window (makes it visible)
    w.openWindow();

    //colors the pixel at position 255,100 in the image
    //with the rgb color 254 (red), 0 (green), 0 (blue)

    // Add your code here
    
    int y = 0;
    
    while (y < 500) {
    	
    	
    	for (int x = 0; x < 500; x++) {
    		
    		if (x % 20 == 0)
    			
    			x += 20;
    		
    		
    		w.setPixel(x, y, 0, 0, 0);
    			
    			
    		w.setPixel(y, x, 0, 0, 0);

    		
    	}
    	y ++;
    }	
    	

    //redraws the image on the screen so all changes
    //become visible
    w.redraw();
  }
}
 
Du vergisst, die y-Koordinate miteinzurechnen.
Wenn ich die Rechtecke mal als Einheit betrachte, dann gilt für ein Schachbrettmuster offensichtlich:
Alles schwarz; Wenn (x+y) % 2 == 0, dann weiß.

Nur so wechseln sich die Farben stets ab.
 
Code:
         int z;
        while (y < 500) {
    	
    	
    	for (int x = 0; x < 500; x++) {

    		z=x/50+y/50;		
    		
                if (z % 2 == 0)
    		w.setPixel(x, y, 0, 0, 0); 
                else
                w.setPixel(x, y, 255, 255, 255); 

    		
    	}
    	y ++;
    }
 
Zuletzt bearbeitet:
Vielen Dank euch beiden!
 
Zurück
Oben