dimanche 5 septembre 2010

04 - Jonction des salles - Position initiale du Héros

Aujourd'hui j'ai poursuivi la création du Donjon en me penchant sur la résolution du problème évoqué la dernière fois : Comment joindre les différentes salles entre elles ?

Chacune de ces salles est séparée par une colonne de briques. Ce que je souhaite, c'est assurer la jonction entre deux salles en remplaçant une de ces briques par une dalle.
J'ai suivi la méthode suivante : Pour chaque colonne de séparation de salles, j'étudie ligne par ligne la colonne précédente et la colonne suivante ; si, pour une ligne donnée, il y a une dalle dans la colonne précédente ET dans la colonne suivante, alors il est possible de joindre ces deux salles en remplaçant une brique de la colonne de séparation par une dalle. J'ajoute donc les coordonnées de cette brique à la liste des jonctions potentielles. Une fois toutes les lignes possibles étudiées, je tire au sort une valeur dans la liste des jonctions potentielles afin de déterminer quelle brique je vais remplacer par une dalle.

Exemple :
  • Pour la colonne 4 il n'existe qu'une seule possibilité : remplacer la brique de la ligne 3 par une dalle ;
  • Pour la colonne 8 il y a 2 possibilités : la ligne 1 et la ligne 3 ;
  • Pour la colonne 12 il y a 4 possibilités : les lignes 1, 3, 4 et 5 ;
  • Pour la colonne 16 il y a 3 possibilités : les lignes 1, 3 et 5.

Après tirage au sort, j'obtiens le tracé suivant :

Si j'effectue un nouveau tirage au sort, il y a de grandes chances pour que je tombe sur un tracé différent, comme celui-ci par exemple :

La question des jonctions entre les salles semble donc réglée... Pourtant, il reste encore un cas à envisager : Et si le nombre de jonctions potentielles entre deux salles est égal à zéro ?

L'image ci-dessus présente plusieurs paires de salles pour lesquelles la jonction sera impossible si on applique la méthode que je viens de vous présenter.

Il existe en fait 4 paires de salles concernées par ce problème : -1, -7, 14 et 17.
Pour ces 4 cas particuliers, je décide que la jonction s'effectuera selon un chemin bien précis que j'aurai déterminé à l'avance et qui nécessitera de transformer deux briques en dalles et non une seule.

Ce qui donne au final le tracé suivant :


La question du tracé est maintenant quasi réglée : Il ne reste plus qu'à s'occuper de la position initiale du Héros.
Quand le Héros arrive dans un nouvel étage, on est confronté à une des deux situations suivantes :
  • La position du Héros est la même qu'à l'étage précédent ; dans ce cas on doit s'assurer que la tile sur laquelle il se trouve n'est pas une brique, et pour ce faire on impose qu'elle soit de type dalle.
  • Le Héros commence son exploration dans la salle la plus à droite de l'étage ; dans ce cas la position initiale du Héros dépend de la nature de la salle (j'illustrerai ce point dans le billet suivant).

Aucun commentaire:

Enregistrer un commentaire