Wir wollen eine Routine schreiben, die ein beliebiges Spielfeld darstellen kann.
Das Spielfeld sei wie folgt definiert:
short max_x_felder;
short max_y_felder;
unsigned char *feldinhalt;
} SPIELFELD;
#define MAX_X 20
#define MAX_Y 10
unsigned char Wiese[] = {
/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 */
/* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 1 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0,
/* 2 */ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
/* 3 */ 0, 0, 0, 0, 0, 0, 0, 0,41, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
/* 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
/* 5 */ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 6 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,33, 0, 0, 1, 0, 0, 0,
/* 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0,33, 0, 0, 0, 0, 1, 0,
/* 8 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
SPIELFELD Test = { MAX_X, MAXY, Wiese };
short x, short y )
unsigned char zeichen;
zeichen = spielfeld.feldinhalt[ (spielfeld.max_x_felder * y ) + x ];
zeichen = '.'; /* ausblenden */
return ( zeichen );
}
int spielfeld_anzeigen( SPIELFELD *spielfeld );
Hier nun die eigentliche Aufgabe:
Es ist eine Funktion zu schreiben die ein gegebenes Spielfeld auf dem Bildchirm / Terminal darstellen kann. Ein Unterprogramm ist bereits gegeben. Änderungen in den Vorgaben sind mit Begründung möglich!