Lösungen
   
Aufgabe 1

Download:
Schachbrett. 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);
   }
}
 

 

Aufgabe 2

Download:
Schachbrett2. java

Liegt das Schachbrett so, dass rechts unten ein weißes Feld ist, so werden die Spalten von links nach rechts mit den Buchstaben A bis H 'durchgezählt'. Die Zeilen werden von unten nach oben mit 1 bis 8 durchgehend nummeriert. Dreht man das Schachbrett um, so geht es umgekehrt, d.h. es werden die Spalten von rechts nach links mit 'A' bis 'H' 'durchgezählt und die Spalten von oben nach unten von 1 bis 8 durchnummeriert.
import java.applet.Applet;
import java.awt.*;


public class Schachbrett2 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

   //x-Koordinate der linken oberen Ecke (ohne Rahmen)
   final int x = 50; 
   //y-Koordiante der linken oberen Ecke (ohne Rahmen)
   final int y = 50; 
   //Eine Liste von Buchstaben. Die Plätze werden von
   //0 an gezählt.
   final char[] zeichen = {'A','B','C','D','E','F','G','H'};


   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);
      g.setColor(Color.BLUE);
      for (int i=1; i<=8; i++)
         g.drawString(""+(9-i),x-15,y-5+i*20);
      for (int i=1; i<9; i++)
         //mit zeichen[i] wird ein Zeichen
         //auf dem Platz i der Liste gelesen.
         g.drawString(""+zeichen[i-1],x-15+i*20,y-5);
   }
}

Im Quelltext wird bereits eine Liste von Zeichen benutzt. Listen werden wir erst später kennen lernen. Verzichtet man auf sie, so müsste man für jeden Buchstaben einen eigenen Methodenaufruf g.drawString(""+'A',.,.) schreiben, was den Quelltext zwar weniger elegant, aber genauso effektiv macht.