#include #include #include #include // Bestimmt wie wahrscheinlich ein Hindernis auftritt. // Je größer die Zahl, desto unwahrscheinlicher treten // Hindernisse auf. const unsigned short OBSTACLE_FACTOR = 20; const char OBSTACLE_SYMBOL = '#'; const char FREE_SYMBOL = '.'; int main(int argc, char *argv[]) { if (argc != 3) { printf("Usage: %s width height\n", argv[0]); return 1; } // Der Zufallsgenerator wird mit der aktuellen Zeit initialisiert. srand(time(NULL)); // Breite und Höhe des zu generierenden Feldes werden als // Kommandozeilenparameter übergeben. int width = atoi(argv[1]), height = atoi(argv[2]); // Dimensionen des Grundstücks ausgeben. printf("%d %d\n", width, height); // In den Schleifen folgt die zufällige Generirung // und Ausgabe des Grundstücks. for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { // Eine Zufallszahl wird generiert. Ist sie durch // den konstanten Faktor teilbar, befindet sich // an dieser Stelle ein Hindernis. bool is_obstacle = rand() % OBSTACLE_FACTOR == 0; if (is_obstacle) printf("%c", OBSTACLE_SYMBOL); else printf("%c", FREE_SYMBOL); } printf("\n"); } return 0; }