La première partie du programme consiste à générer un fichier d'altitudes qui sera ensuite tracé.
Pour cela on considère un tableau carré dont le nombre de case par côté est une puissance de deux plus un (3, 5, 9, 17, 33...) et dont on initialise les quatre coins à 0.
Ainsi à chaque itération on peut considérer les quatre coins du carrée, les quatre milieux des arrètes et le point au centre.
Neuf points importants à chaque itération
Ensuite à chaque itération on effectue le travail suivant :
- Altitude en 2 = (altitude en 1 + altitude en 3)/2 + nombre aléatoire
- Altitude en 4 = (altitude en 1 + altitude en 7)/2 + nombre aléatoire
- Altitude en 6 = (altitude en 3 + altitude en 9)/2 + nombre aléatoire
- Altitude en 8 = (altitude en 7 + altitude en 9)/2 + nombre aléatoire
- Altitude en 5 = moyenne des altitudes 2, 4, 6 et 8 + nombre aléatoire
- Puis sur les quatre sous-carrés définis ainsi (C1, C2, C3 et C4) on appelle le même algorithme.
Le nombre aléatoire est tiré entre 0 et la moitié de la taille du carré considéré. Ainsi plus le carré est petit plus ce nombre sera petit et on ne risque pas d'avoir des pentes trop fortes (max. 45°).
Remarque : il faut faire attention à n'éxecuter les étapes 1 et 2 que pour les carrés qui sont au bord du tableau, en effet à la deuxième itération, le point 6 du carré C1 est confondu avec le point 4 du carré C2. Il ne faut pas calculer deux fois son altitude!
Une fois ce tableau créé, j'ai choisi d'enregistrer ses valeurs sous forme de fichier. Pour cela, j'utilise une structure de fichier très simple, il y a d'abord un entier qui est le nombre de case le long d'un côté du tableau et ensuite pour chaque ligne du tableau il y a une ligne dans le fichier avec les valeurs séparées par des espaces.