💻 Tuto 18 : Projet : Aventure Textuelle de Hacker ✨

Salut, jeune nomade ! Crée une aventure interactive de hack avec Python ! 🚀

Une aventure textuelle, c’est quoi ?

Yo, prêt à coder un projet épique ? Dans les tutos précédents, t’as maîtrisé les erreurs (Tuto 17), les modules (Tuto 16), les fichiers (Tuto 15), les dictionnaires (Tuto 13), et bien plus. Maintenant, on va créer une aventure textuelle, un jeu où le joueur fait des choix pour progresser dans une histoire de hack. Ce jeu a une âme de saga qui va captiver tes potes ! 🗡️

Pour un hacker éthique, c’est comme simuler des décisions dans une mission de hack : choisir une action peut réussir ou échouer. Mais on reste responsable : on code pour s’amuser et apprendre, pas pour causer des soucis !

Astuce Éthique : Ton aventure est comme une quête NarcoShield. Fais-la fun et respectueuse !

Comment fonctionne l’aventure ?

Dans ce jeu, le joueur est un hacker éthique qui doit infiltrer un serveur. On utilise un dictionnaire pour stocker les scènes (lieux, choix, résultats) et une boucle pour naviguer. Chaque choix mène à une nouvelle scène ou à une fin. On gère les erreurs pour éviter les plantages, et on ajoute du suspense avec le module time. C’est comme une mission cyber où chaque décision compte !

Analogie : L’aventure, c’est une quête cyber où tu explores des salles (scènes). À chaque salle, tu choisis une porte (choix), et ton chemin change. Les boucliers (try/except) et outils (time) te guident sans tomber dans des pièges !

Hacking tie-in : Un hacker éthique utilise des structures comme des dictionnaires pour organiser des scénarios de test, comme simuler des chemins dans un scan Nmap.

De quoi t’as besoin ?

T’as tout prêt si t’as suivi les tutos précédents :

Si Python ou IDLE coince, check Tuto 1 pour l’installation. Demande à un adulte si besoin !

Astuce : Ouvre IDLE et prépare-toi à lancer une quête cyber !

Créer ton aventure textuelle, étape par étape

Suis ces étapes pour coder un jeu où le joueur navigue dans une mission de hack. C’est comme guider une aventure cyber interactive !

  1. Ouvre IDLE
    Lance IDLE et clique sur Fichier > Nouveau Fichier pour ouvrir une fenĂŞtre vide, ton nouveau monde cyber.

    Astuce : Vérifie que t’es dans une nouvelle fenêtre, pas l’interpréteur “>>>”.

  2. Écris ton code
    Tape ce code dans la fenĂŞtre :
    import time
    
    def show_scene(scene, name):
        print("\n" + "=" * 40)
        print(f"{name}, tu es ici : {scene['description']}")
        time.sleep(1)
        print("Choix possibles :")
        for i, choice in enumerate(scene["choices"], 1):
            print(f"{i}. {choice['text']}")
        return len(scene["choices"])
    
    scenes = {
        "start": {
            "description": "Tu es devant un serveur sécurisé. Que fais-tu ?",
            "choices": [
                {"text": "Scanner les ports", "next": "scan"},
                {"text": "Tenter un mot de passe", "next": "password"}
            ]
        },
        "scan": {
            "description": "Le scan révèle un port 80 ouvert. Et maintenant ?",
            "choices": [
                {"text": "Exploiter le port", "next": "win"},
                {"text": "Revenir en arrière", "next": "start"}
            ]
        },
        "password": {
            "description": "Mauvais mot de passe ! Alarme déclenchée !",
            "choices": []
        },
        "win": {
            "description": "Succès ! Tu as infiltré le serveur éthiquement !",
            "choices": []
        }
    }
    
    name = input("C’est quoi ton nom, hacker ? ")
    print(f"Bienvenue, {name} ! Ta mission : infiltrer un serveur.")
    current_scene = "start"
    while current_scene:
        try:
            num_choices = show_scene(scenes[current_scene], name)
            if num_choices == 0:
                print("Fin de l’aventure !")
                break
            choice = int(input("Ton choix (1-{}) ? ".format(num_choices)))
            if choice < 1 or choice > num_choices:
                print("Choix invalide, réessaie !")
                time.sleep(1)
                continue
            current_scene = scenes[current_scene]["choices"][choice - 1]["next"]
        except ValueError:
            print("Entre un numéro valide !")
            time.sleep(1)
                        
    Explication : import time (Tuto 16) ajoute des pauses. input() (Tuto 5) demande un nom. Un dictionnaire (Tuto 13) scenes stocke les scènes et choix. Une fonction show_scene (Tuto 11) affiche la scène et les choix. Une boucle while (Tuto 8) gère la navigation, avec try/except (Tuto 17) pour les erreurs de saisie et if (Tuto 6) pour valider les choix.

    Astuce : Respecte l’indentation (4 espaces) après def, while, try, if, et for !

  3. Sauvegarde ton programme
    Clique sur Fichier > Enregistrer. Nomme-le “aventure.py” et sauve-le dans un dossier (ex. : “Mes Documents”). Note l’emplacement !

    Astuce : Choisis un nom simple sans espaces (ex. : “aventure.py”).

  4. Lance ton programme
    Clique sur Exécuter > Exécuter le Module (ou F5). Une fenêtre s’ouvrira, démarrant l’aventure. Essaye (ex. : “Jonathan”, choix “1”, “1”):
    C’est quoi ton nom, hacker ? Jonathan
    Bienvenue, Jonathan ! Ta mission : infiltrer un serveur.
    ========================================
    Jonathan, tu es ici : Tu es devant un serveur sécurisé. Que fais-tu ?
    Choix possibles :
    1. Scanner les ports
    2. Tenter un mot de passe
    Ton choix (1-2) ? 1
    ========================================
    Jonathan, tu es ici : Le scan révèle un port 80 ouvert. Et maintenant ?
    Choix possibles :
    1. Exploiter le port
    2. Revenir en arrière
    Ton choix (1-2) ? 1
    ========================================
    Jonathan, tu es ici : Succès ! Tu as infiltré le serveur éthiquement !
    Fin de l’aventure !
                        
    Teste d’autres chemins (ex. : choix “2” pour perdre) ou une saisie invalide (ex. : “abc”). Si ça marche, t’as codé une quête cyber ! Si non, passe à “Si ça coince”.

    Astuce : Explore tous les chemins pour voir les fins différentes !

  5. Joue avec ton code
    Ajoute une scène (ex. : "fail": {"description": "Déconnexion !", "choices": []}). Change les descriptions ou choix (ex. : "Tenter un exploit"). Modifie les pauses (ex. : time.sleep(0.5)). Ajoute une condition (ex. : vérifier si name est vide). Relance (F5) pour tester. Amuse-toi !

    Astuce : Partage ton jeu avec un pote pour voir ses choix !

Pourquoi c’est important pour le hacking ?

Ce projet combine tout ce que t’as appris, te préparant à coder des outils cyber :

Hacking tie-in : Un hacker éthique utilise ces compétences pour coder des simulations, comme tester des scénarios de sécurité avec Nmap.

Si ça coince : que faire ?

Pas de panique, nomade, une aventure peut avoir des bugs ! Voici des astuces :

🎯 Mission 18 : Lance une quête cyber !

Suis les étapes pour créer ton aventure textuelle. Ouvre un fichier texte (Bloc-notes ou autre, pas Python). Crée un fichier nommé “code18.txt” dans le dossier “CyberForge” (dans toutpartdela/programmation/, créé dans Tuto 1). Écris dedans : “J’ai codé un jeu qui demande [tes questions] et affiche [un exemple de chemin].” Exemple : “J’ai codé un jeu qui demande nom et choix et affiche Jonathan, tu es ici : Le scan révèle un port 80 ouvert... Succès !” C’est ton dix-huitième trophée de nomade !

Astuce Éthique : Crée une aventure fun et motivante pour tous !

PrĂŞt pour la suite ?

Bravo, t’es un créateur de quêtes cyber ! T’as codé un jeu interactif qui combine tout ce que t’as appris. Dans le Tuto 19, on va explorer les listes en compréhension pour coder plus vite. Ouvre IDLE, jeune nomade, et continue à coder comme un hacker éthique ! 💖