Wir programmieren Teil 7
Nachdem wir unser erstes Spiel programmiert haben, widmen wir uns nun weiteren sprachlichen Strukturen.
Wir wollen Conways Spiel des Lebens programmieren. Hierfür brauchen wir mehrdimensionale (konkret 2-dimensionale) Arrays. So ein Feld kann man sich als Schachbrett vorstellen anhand der Koordinaten kann man den Wert eines Feldes bestimmen und Abragen (Siehe auch hier).
Doch schauen wir uns das einfach mal an:
int[][] feld=new int[10][10];
int xs=0;
int ys=0;
// --------------------------------------------------------
// Setup, also Erstellen des Programmfensters
void setup() {
size(640,480);
xs=width/8;
ys=height/8;
smooth(); frameRate(3);
for (int x=1;x < 9; x++) {
for (int y=1;y < 9; y++) {
if (int(random(0,3))==1) feld[x][y]=1;
}
}
background(0,0,0);
fill(255,0,0);
}
// --------------------------------------------------------
// Hauptfunktion
void draw() {
for (int x=1;x < 9; x++) {
for (int y=1;y < 9; y++) {
if (feld[x][y]==1) {
rect((x-1)*xs,(y-1)*ys,xs-1,ys-1);
}
}
}
}
Nunja, diesmal müsst ihr selber mehr arbeiten, denn langsam werdet ihr ja echte Programmierer!
Für das Spiel des Lebens brauchen wir:
- 2 Felder: eines, für den aktuellen Bestand an lebenden Zellen, eines für den zukünftigen Stand.
- Für alle sichtbare Zellen wird geschaut, wieviele Nachbarn leben. Also eine Summe der Art:
a[x-1][y-1]+a[x][y-1]+a[x+1][y-1]+... - Für alle scihtbare Zellen erfolgt nun die Anzeige und die Übername vom zukünftigen Stand zum aktuellen Stand.
- Die Framerate sollte nicht zu groß sein!
- Am Anfang sollte der Bestand per Zufall erzeugt werden
So, auf an die Tastatur und los geht! Bis morgen mit Teil 8!
