Parcours
/
Java
Java
/
Exercices
/
Souris labyrinthiques
Souris labyrinthiques

Souris labyrinthiques

Difficile

Introduction

Voici Mickey et Minerva, deux souris astucieuses qui adorent explorer un labyrinthe pour trouver du fromage. Elles aiment les bons défis, mais avec leur minuscule cervelle de souris, elles préfèrent qu'il n'y ait qu'un seul chemin correct jusqu'au fromage.

Instructions

Ta tâche est de générer les labyrinthes parfaits pour Mickey et Minerva, c'est-à-dire des labyrinthes qui n'ont qu'une seule solution et aucune section isolée. Voici ce qu'il faut savoir :

  • Le labyrinthe a une forme rectangulaire, avec une ouverture au début et à la fin.
  • Le labyrinthe comporte des salles et des couloirs qui se croisent à angle droit.
  • Le programme doit prendre deux paramètres : lignes et colonnes. La taille du labyrinthe doit être comprise entre 5 et 100 cellules.
  • Un labyrinthe de x colonnes de large et de y lignes de haut doit faire 2x + 1 caractères de large et 2y + 1 caractères de haut.
  • Si aucune graine n'est fournie, génère un labyrinthe aléatoire. Si la même graine est fournie plusieurs fois, le labyrinthe obtenu doit être identique à chaque fois.
  • Utilise des caractères semi-graphiques pour dessiner les murs, et un symbole de flèche (⇨) pour l'entrée à gauche et la sortie à droite.

Il est temps de créer des labyrinthes parfaits pour ces souris aventurières !

Exemples

  1. Un petit labyrinthe carré de 5x5 cellules (ou 11x11 caractères)

    ┌───────┬─┐
    │       │ │
    │ ┌─┬── │ │
    │ │ │   │ ⇨
    │ │ │ ──┤ │
    ⇨ │ │   │ │
    ┌─┤ └── │ │
    │ │     │ │
    │ │ ────┘ │
    │         │
    └─────────┘
    
  2. Un labyrinthe rectangulaire de 6x18 cellules

    ┌───────────┬─────────┬───────────┬─┐
    │           │         │           │ │
    │ ┌───────┐ │ ┌─┐ ──┐ └───┐ ┌───┐ │ │
    │ │       │ │ │ │   │     │ │   │   ⇨
    │ └─┐ ┌─┐ │ │ │ ├── ├───┐ │ │ ──┼── │
    │   │ │ │   │   │   │   │ │ │   │   │
    └── │ │ ├───┴───┤ ┌─┘ ┌─┘ │ ├── │ ──┤
    ⇨   │   │       │ │   │   │ │   │   │
    ┌─┬─┴─┐ └─┐ ┌─┐ │ └─┐ │ ┌─┘ │ ──┴─┐ │
    │ │   │   │ │ │ │   │   │   │     │ │
    │ │ │ └── │ │ │ └── │ ──┘ ┌─┘ ──┐ │ │
    │   │       │       │     │     │   │
    └───┴───────┴───────┴─────┴─────┴───┘
    
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Java Exercism

Prêt à commencer Souris labyrinthiques ?

Inscris-toi sur Exercism pour apprendre et maîtriser Java avec 26 concepts158 exercices, et un vrai mentorat humain, le tout gratuitement.