Table des matières

Solution d'un labyrinthe

Données

On vous fournit un labyrinthe sous forme d'un fichier texte.

Voici un exemple :

*******************
*D*          *A   *
* ******** ****** *
*                 *
*******************

Vous pouvez télécharger laby_exemple.txt dont le contenu est :

****************************************************************************************
*         *                                    ** *                                    *
**** ****** **********************************    * * *******************************  *
* *         *                                * ****** *                                *
* * **** **** ****************************** * *      * ******* ************** ******* *
* * * *     * *   *                  *     * * * ****** *   * * *   **       * *     * *
*   * * **  *   *   * ************** *  **** * *      *   *   *   ***  ***** * * ***   *
***** * *   * *********  * *         *       * ****** * *********** ** *   * * *     * *
*     * * *** *          *   ************  *** *      * *            * * *   * ******* *
* ***** * *   *       ********     *       *   * * ** * * ********** * ******* *       *
*       * * *** *******      * *** * ******* *** ***  * * *        * * * *   * * * *****
********* * *   *     * **** * * * *       *       **** * * ****** * *   * * *   * *   *
*   *   *     ******* * *  * * *   ** **** ******* *    * * *    * * * * * * *** * * * *
* * * * *******   *   * * ** * * ******* * *     * * **** * * ** * * * * * *     * * * *
* * * * *     * *   *   *    * *         * * *** * * *  * * * *A * * * * * * * * *   * *
* *   * * ***** ************** *********** * * * * * *  * * * **** * * * * * * * ***** *
* ***** *  *                             * * *   * * *  * * *      * * * * * * *       *
*       ** * *************************** * * ***** * *  * * ******** * * * * * * *******
*** *****  * *   *   *           *       * *       *    * *          * *   *   *       *
*D  *   **** * * * * * ********* ********* ************ * ******************************
*** * * *    * * * *    *                * *        *   *                              *
* * * * * **** * * ****** ************** * ******** * * ****************************** *
* * * * *    * *        *              * * *        * *           *             *      *
* * * * * * ** ******** ************** * * * ******** *********** * * *********** ******
*     *   *             *              *   *                    *   *                  *
****************************************************************************************

Objectif

Produire un fichier texte contenant le labyrinthe et sa solution. La solution est affichée en utilisant le caractère . pour marquer les cases du chemin à suivre.

Voici un exemple :

*******************
*D*          *A...*
*.******** ******.*
*.................*
*******************

Aide

Ouverture de fichier

file = open('le_nom_du_fichier_source', 'r', encoding='utf8')
# 'r': ouverture en mode lecture
# 'utf8': précise l'encodage des caractères.
#         inutile ici car aucun caractère spécial.

texte = file.read() # texte contient la totalité du contenu du fichier

# autre possibilité :
lines = file.readlines() # lines contient un tableau dont chaque item est une ligne du fichier

file.close() # ne pas oublier de libérer le fichier

Vous pouvez ensuite poursuivre en travaillant sur texte ou sur lines selon le choix fait.

Écriture du fichier

En supposant que la variable texte contient le texte à écrire dans le fichier,

file = open('le_nom_de_fichier_cible', 'w', encoding='utf8')
# 'w': écriture
file.write(texte)
file.close()

Méthode

Une possibilité est de créer un arbre :

Des améliorations

On peut ajouter des complications :