Quêtes de programmation & scripts de jeu sur Ubuntu
Pour développer tes scripts de défis directement dans ton terminal Ubuntu, suis toujours ces 4 étapes fondamentales :
Utilise l'éditeur nano pour créer et éditer ton script.
nano mon_script.sh
Ajoute toujours cette ligne tout en haut de ton fichier.
#!/bin/bash
Accorde les droits d'exécution au fichier.
chmod +x mon_script.sh
Exécute-le directement depuis ton dossier courant.
./mon_script.sh
Script de jeu interactif de devinettes avec stockage des scores.
#!/bin/bash # 1. Génération du nombre mystère et variables d'état SECRET=$((RANDOM % 100 + 1)) TENTATIVES=0 TROUVE=0 echo "=== JEU DU JUSTE PRIX ===" echo "Trouve le nombre secret entre 1 et 100 !" # 2. Boucle de jeu while [ $TROUVE -eq 0 ]; do read -p "Propose un nombre : " PROP # Vérification simple que l'entrée est bien un nombre if ! [[ "$PROP" =~ ^[0-9]+$ ]]; then echo "Merci d'entrer un nombre valide." continue fi ((TENTATIVES++)) if [ $PROP -lt $SECRET ]; then echo "C'est plus grand ! ⬆️" elif [ $PROP -gt $SECRET ]; then echo "C'est plus petit ! ⬇️" else echo "🎉 Bravo ! Tu as trouvé en $TENTATIVES coups." TROUVE=1 fi done # 3. Enregistrement du score dans justeprix.log read -p "Entre ton nom pour le classement : " NOM echo "$TENTATIVES;$(date '+%d/%m/%Y %H:%M');$NOM" >> justeprix.log # 4. Lecture et affichage des 5 meilleurs scores echo -e "\n🏆 TABLEAU DES PIONNIERS (TOP 5) :" echo "----------------------------------------" sort -t';' -k1 -n justeprix.log | head -n 5 | while IFS=';' read -r t d j; do echo "- $j : $t tentatives (le $d)" done echo "----------------------------------------"
Outil de monitoring système portable pour surveiller l'état de ta machine.
#!/bin/bash # 1. Définition des couleurs ANSI VERT='\e[32m' JAUNE='\e[33m' ROUGE='\e[31m' BLEU='\e[34m' NEUTRE='\e[0m' # Nettoyage de l'écran clear echo -e "${BLEU}=======================================${NEUTRE}" echo -e "${BLEU} MONITEUR SYSTÈME UBUNTU ${NEUTRE}" echo -e "${BLEU}=======================================${NEUTRE}" # 2. Récupération & Test du Disque (/) DISK_PCT=$(df -h / | tail -n 1 | awk '{print $5}' | cut -d'%' -f1) echo -n "Espace Disque (/) : " if [ "$DISK_PCT" -gt 85 ]; then echo -e "${ROUGE}CRITIQUE ! ${DISK_PCT}% utilisé${NEUTRE}" elif [ "$DISK_PCT" -gt 70 ]; then echo -e "${JAUNE}ATTENTION : ${DISK_PCT}% utilisé${NEUTRE}" else echo -e "${VERT}OK - ${DISK_PCT}% utilisé${NEUTRE}" fi # 3. Récupération & Calcul de la RAM RAM_TOTAL=$(free -m | grep Mem | awk '{print $2}') RAM_USED=$(free -m | grep Mem | awk '{print $3}') RAM_PCT=$((RAM_USED * 100 / RAM_TOTAL)) echo -n "Mémoire RAM : " if [ "$RAM_PCT" -gt 90 ]; then echo -e "${ROUGE}SATURÉE ! ${RAM_PCT}% ($RAM_USED Mo / $RAM_TOTAL Mo)${NEUTRE}" else echo -e "${VERT}OK - ${RAM_PCT}% ($RAM_USED Mo / $RAM_TOTAL Mo)${NEUTRE}" fi # 4. Test Connexion Réseau echo -n "Connexion Internet : " if ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1; then echo -e "${VERT}CONNECTÉ (Ping OK)${NEUTRE}" else echo -e "${ROUGE}HORS-LIGNE (Impossible de ping 8.8.8.8)${NEUTRE}" fi echo -e "${BLEU}=======================================${NEUTRE}"
Jeu de rôle textuel structuré en fonctions et gérant des états d'inventaire.
#!/bin/bash # 1. État global du joueur POSSEDE_CLE=0 SWITCH_ALLUME=0 # 2. Fonction de la salle d'accueil salle_accueil() { clear echo "------------------------------------------------" echo "Tu te trouves à l'accueil de l'atelier 2GIK." echo "Que souhaites-tu faire ?" echo "1) Aller dans le bureau de Xavier" echo "2) Aller dans la salle serveur" echo "3) Examiner la boîte de matériel sur le comptoir" echo "------------------------------------------------" read -p "Ton choix : " CHOIX case $CHOIX in 1) salle_bureau ;; 2) salle_serveur ;; 3) echo "Tu fouilles la boîte et trouves une Clé USB d'installation Ubuntu !" POSSEDE_CLE=1 read -p "Appuie sur Entrée pour continuer..." salle_accueil ;; *) echo "Choix invalide." sleep 1 salle_accueil ;; esac } # 3. Fonction de la salle serveur salle_serveur() { clear echo "------------------------------------------------" echo "Tu entres dans la salle serveur. Les baies ronronnent." echo "Un commutateur Cisco est éteint dans la baie." echo "1) Brancher le commutateur sur l'onduleur" echo "2) Insérer la clé d'installation dans le serveur" echo "3) Revenir à l'accueil" echo "------------------------------------------------" read -p "Ton choix : " CHOIX case $CHOIX in 1) echo "Tu branches le cordon. Les LED du switch clignotent en vert ! Le réseau LAN est actif." SWITCH_ALLUME=1 read -p "Appuie sur Entrée..." salle_serveur ;; 2) if [ $POSSEDE_CLE -eq 1 ] && [ $SWITCH_ALLUME -eq 1 ]; then echo "🎉 Félicitations ! Le serveur installe Ubuntu et est accessible sur le réseau. Mission réussie !" exit 0 elif [ $POSSEDE_CLE -eq 1 ]; then echo "Le serveur démarre, mais n'obtient pas d'adresse IP car le switch réseau est éteint..." read -p "Appuie sur Entrée..." salle_serveur else echo "Le serveur est alimenté mais n'a pas de système. Il te faut une clé d'installation." read -p "Appuie sur Entrée..." salle_serveur fi ;; 3) salle_accueil ;; *) echo "Choix invalide." sleep 1 salle_serveur ;; esac } # 4. Fonction du bureau salle_bureau() { clear echo "------------------------------------------------" echo "Tu entres dans le bureau de Xavier. Il est absent." echo "Sur son écran, un pense-bête indique : 'Penser à brancher la baie de brassage !'" echo "1) Revenir à l'accueil" echo "------------------------------------------------" read -p "Ton choix : " CHOIX case $CHOIX in 1) salle_accueil ;; *) salle_bureau ;; esac } # Démarrage du script salle_accueil