Good Sync Fork to All

This commit is contained in:
fred 2024-02-20 19:16:24 +01:00
parent e56956da3a
commit c2e9655e75
93 changed files with 1098 additions and 1829 deletions

View File

@ -40,15 +40,24 @@ select game in "${GAMES[@]}"; do
MY_GAME="$MY_PATH/games/$game"
echo "SELECTION: "${MY_GAME}
# test game start protocol compatibility
if [[ -x ${MY_GAME}/rooms/start.sh ]]; then
sleep 1
echo "Charging game..."
sleep 1
break
diff --recursive --brief ${MY_GAME}/ ${MY_GAME}/../_votre\ jeu/
echo "confirm ?"
read ENTER
if [[ ! $ENTER ]]; then
# test game start protocol compatibility
if [[ -x ${MY_GAME}/rooms/start.sh ]]; then
sleep 1
echo "Charging game..."
sleep 1
break
else
# not compatible
echo "ERROR - not compatible game - SELECT ANOTHER - "
fi
else
# not compatible
echo "ERROR - not compatible game - SELECT ANOTHER - "
echo "CHOOSE NEXT"
fi
done

View File

@ -1,175 +0,0 @@
#!/bin/bash
clear
#récupérer la varible nom
nom="$1"
position=Entrée
# Afficher dynamiquement les informations du personnage à chaque fois que le menu s'affiche
cat "personnages/$nom/$nom.txt"
echo "-----------------------"
cat "personnages/$nom/$nom-fichier_stats.txt"
echo "-----------------------"
# Menu principal
while true; do
clear
echo "--------------------------------------------------------------------------------"
echo " Menu Principal "
echo "--------------------------------------------------------------------------------"
echo ""
echo " vous êtes actuellement : $position"
echo ""
echo ""
echo ""
echo " ___ "
echo " |___|____ "
echo " / \\ "
echo " | () () | "
echo " \\ ^ / "
echo " ||||| "
echo " /|||||\ "
echo " \|||||/ "
echo " ||||| "
echo " ||||| "
echo " /_\ /_\ "
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo ""
echo "1. Ouvrir le Sac 4. Regarder"
echo "2. Ouvrir la carte 5. Agir"
echo "3. Ouvir son portmonnaie 6. Se déplacer"
echo " "
echo " 7. Quitter le jeu"
echo " FDP"
echo ""
echo "--------------------------------------------------------------------------------"
echo " "
echo "--------------------------------------------------------------------------------"
read -p "Choisissez une option (1/2/3/4/5/6/7) : " choix
case $choix in
1)
# Insérez ici le code pour ouvrir le sac
echo "Le sac n'est pas encore implémenté."
;;
2)
# Insérez ici le code pour ouvrir la carte
if [ -f "map.sh" ]; then
./map.sh # Exécuter le script si présent
else
echo "La carte n'est pas encore implémentée."
fi # Fin du bloc if
;; # Fin de l'option 4
3)
cat "personnages/$nom/$nom-inventaire.txt"
;;
4)
afficher_statistiques_personnage
;;
5)
cat "personnages/$nom/$nom-inventaire.txt"
;;
6)
echo "-------------------------------------"
echo " "
echo "-------------------------------------"
echo "vous êtes actuellement ici : $position"
echo "regarder la map pour plus d'information"
echo "-------------------------------------"
echo "Voici la liste des directions possible"
echo "1.Accueil"
echo "2.Escalier"
echo "3.Récréation"
echo "4.CDI"
echo "5.Cantine"
echo "6.Salle cours 1"
echo "7.Salle cours 2"
echo "8.Salle cours 3"
echo "9.Salle cours 4"
echo "10.Salle cours 5"
echo "11.Salle cours 7"
echo "12.Salle cours 8"
echo "13.Concièrge"
echo "14.Terrain de Basket"
echo "15.Le coin fumeur"
read -p "ou souhaites tu aller ? 1/2/3/4/5/6/7/8/..." lieu
case $lieu in
1)
echo "comme tout personnes normal vous allez à l'acceuil"
./accueil.sh
;;
2)
echo "intriger par les escalier vous décider d'y aller"
if [ -f "personnages/$nom:inventaire.txt/baseball" ]; then
echo "le pion se dirige vers vous mais vous lui donner un coup de batte de basebell"
echo "il semble plus donner signe de vie mais l'escalier vous intrige plus que ça vie insignifiante"
./escalier.sh # Exécuter le script si présent
else
echo "Un pion surgit de nulle part et vous attrape pour vous ammener à l'acceui"
./accueil.sh
fi # Fin du bloc if
;; # Fin de l'option 2
3)
echo "Le chemin pour allez à l'ecole vous a fatiguer il est temps d'aller en pause"
./recreation
;;
4)
echo "Pourquoi ne pas aller au CDI"
./CDI.sh
;;
5)
cat "personnages/$nom/$nom-inventaire.txt"
;;
6)
;;
7)
exit
;;
8)
# Insérez ici le code pour ouvrir le sac
echo "Le sac n'est pas encore implémenté."
;;
9)
# Insérez ici le code pour ouvrir la carte
if [ -f "map.sh" ]; then
./map.sh # Exécuter le script si présent
else
echo "La carte n'est pas encore implémentée."
fi # Fin du bloc if
;; # Fin de l'option 4
10)
cat "personnages/$nom/$nom-inventaire.txt"
;;
11)
afficher_statistiques_personnage
;;
12)
cat "personnages/$nom/$nom-inventaire.txt"
;;
13)
;;
*)
echo "Option invalide. Veuillez choisir une option valide."
;;
esac
read -p "Appuyez sur une touche pour continuer..."
;;
7)
;;
*)
echo "Option invalide. Veuillez choisir une option valide." ;;
esac
done

View File

@ -1,21 +0,0 @@
.';:llllc;'.
.:xXWX;.,ll;.:XWXx;.
;0MMMMMMKl;'',l0MMMMMWO,
,0MMMMMMW0dc;,,;cd0WMMMMMMO.
dWMMMMM0; ;OMMMMMN:
dMMMMMN: .,'. cWMMMMMc
,WMMMMX. .xNMMMMNx,'lONMMMMMMN.
oMMMMM: :WMMMMMMMMMMMMMMMMMMMMc
xMMMMM' xMMMMMMOlllllllloNMMMMo
oMMMMMc ,NMMMMMWd. KMMMM:
.WMMMMN, .l0NWWWKc KMMMX.
cMMMMMWo .. KMMW;
cWMMMMMXo' .lKd. KMK'
.xWMMMMMMN0dlllldONMMMMWOXd
.xNMMMMMMMd''lWMMMMMMXo.
'lONWMW, .XMWXOl.
..,,..,,..

View File

@ -1,21 +0,0 @@
.':cdxxxxxoc;.
.:x00dc;'..:..,:lk00o'
;0Xd, oMo :OXx.
:KK; cMMMl .oNk.
.kN: ;MMMMMc xNl
.0K. ,WMMMMMW; ;Wo
OX. ,WMMMMMMMW; ;Wc
cM; .WMMMMMMMMMW, kX.
OX .NMMMMMMMMMMMW' ,Mc
O0 .NMMMMMMMMMMMMMW' .Mc
ON .XMMMMM0kkkkKMMMMN. ,M:
:M; KMMMMM: .,,;dMMMMMN. kX.
ON. 0MMMMMl ,WMMMMMMMMMMX. ;Wc
.0K. 0MMMMMd 'WMMMMMMMMMMMMX. :Wo
.xN: kMMMMMO .XWWWWNNNNNXXKKKd xNc
;0Xl. .oXx.
,OXx, .cOKd.
;d00xl:,....';coO0Ol'
.;:odddddl:,.

View File

@ -1,21 +0,0 @@
MMMMMMMMMMMMMMMMMMMl xxlxxxd . KNNMNl. 'd0xdddkXKxc. ,dNMMMMMMMMMMMMMMM
MMMMMMMMMMMWKOl:cc' .NNOMXNX .ld; ,lxXMMMMMMMMMMM
MMMMMMMMNo. ,,' .KKWMOXX .. .dWMMMMMMMM
MMMMMMWc cdddc .NNNMXNX .do '' ' .:,:k; l, .KMMMMMMM
MMMMMW, ;ll: .,:ddddd .KKOM0XX .do '0MMXMo . dMMMMMMXOMX0: XMMMMMM
MMMMMo xc:d 'ddddddd .XXWMK00' .do .oo. .dMMMMMMO;lWNMMMMMMWXMMMX: :MMMMMM
MMMMW. .cXKKXWooK0kk0d0Oxxkkx .XXNM0Ok; .:ol:'do,0MMK ... 'XMMMMMMMMMMMMMMMMMWWMMMMx .dkONMM
MKNK. NMWooOWllKKoMNll0MM0x0 xNXXOMKOkKOoM0kkkOkWMMMM0NWWXXMMMMMMMMMMW:WkWk0OKMWdOMNxd0O. .KM
l dkkMMWloOWcc0KoMNccOMMxl0cMMXXWM0KOMMMM0OkkOKMMMMMMMMMMMMMMMMMMMMM0 : o.. 'll.lMMMMMMx .O
;kMMMMMWlckWooKXdMNccOMMxlXk0MMMNMMMMMMMM0OkkOWMMMMMMMMMMMMMMMMMMMMMMo0OWW,xNWKcooMM0NN0Oc
.NMMMMMMNllkWllKKoMNll0MMxlNxOMMMOMMMMMMMM0OkOOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMMNdxMMMk
;WMMMMMMMMMMMNNWWNMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWx.
:MMkxxxWMMMWkxxxxxxxWXxxxxxxxxKWxxxxxxxxxWMMKxxxxxxKMMKxxxxxxxxKMMXxxxxxx0MMkxxxxxxxxNMXxdlloodO:
:N, OMM0. 'N. 0: :Mc XK Nx kl ,N. ;'
x..M0xddddKMMOddddddddKKddddddddxNxdddddddddOWoooooooooN0ddddddddddNdoooooooo0xdddddddddkKdddddddox.
MWKK ,MN. .,XMMMMl ;MMMM' xc 'MMd .Mx ;x .NMO N; dMMMl ,W
MMMK NM:. 'MMMW. xMMMO dW. oMM. lM' .:N, ;MM; ;K oMMMW. dO
MMMMMMMo xXXXXXk .MMMO NMMM; .WWN. 00 XM0 KK 0WWWWMMW OMX kc .WWW. OMMMO Nc
MMMMMMMX dMMM; ;MMMN dMMk N0 .. oMl .MMMMMMMN ... :W. lMM0 XMMM; ;M' .c
MMMMMMMM, .xMMMW. kMMMx .NMM: cMMd. .;0MM. oMMMMMMMMk. .,kMO XMMl :MMMW. kMOKMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

View File

@ -1,21 +0,0 @@
.,'.
.,,;,'',;,'',,.'.
.;;,,.. .........'
.l:. ............cc.
.c, .................:c.
.lc ................... .l;
l' ... .............. c:
:: .. ........... l'
d . .''...... 'o
.o .. ''''''. l
.d . ......''''''' l
o . .,,,,,,'''''' 'l
;: . ',,,,''''', l.
l, .. .,,,''''', oc
.lc .',,,''',. .c,
'l, .,,''',..:c.
';;. .,,',,:;.
':;;'. .;:,,,.
.,,'''''','..;,,.
,:.
.,

View File

@ -1,9 +0,0 @@
_______ _ ______ _
|__ __| | | ____| | |
| | | |__ ___ | |__ _ __ __| |
| | | '_ \ / _ \ | __| | '_ \ / _` |
| | | | | | __/ | |____| | | | (_| |_
|_| |_| |_|\___| |______|_| |_|\__,_(_)

View File

@ -1,21 +0,0 @@
.:dO0NNkNX0ko,.
.:OWMMMMMMc cWMMMMMXd,
'kWMMMMMMMMc cWMMMMMMMNo.
.kMMMMMMMMMMo lMMMMMMMMMWl
.KMMMMMMMMMMd oMMMMMMMMMMx
.XMMMMMMMMMMk dMMMMMMMMMMx
xMMMMMMMMMM0 OMMMMMMMMMM,
.NMMMMMMMMMK. OMMMMMMMMMk
'MMMMMMMMMK. OMMMMMMMMK
.NMMMMMMMK. ,;;;;' OMMMMMMMx
dMMMMMMX. kMKkxxc 0MMMMMM,
.KMMMMN. dMx .KMMMMd
.0MMN. cMx .KMMd
xW' 'W0. ......:Xc
.lXNNWNWMMMMMMMMMMMMMMMMXl
;xXMMMMMMMMMMMMMMWKo'
.,lxkKKKK0kdc'

View File

@ -1,10 +0,0 @@
_____ _ _
/ ____| (_) | |
| (___ _ _ _ __ _ __ _ __ _ ___ ___| |
\___ \| | | | '__| '_ \| '__| / __|/ _ \ |
____) | |_| | | | |_) | | | \__ \ __/_|
|_____/ \__,_|_| | .__/|_| |_|___/\___(_)
| |
|_|

View File

@ -1,9 +0,0 @@
_ _ _ ____ ___ _ ____
/ \ ___| |_ _ __ ___ _ __ ___ _ __| |_ |___ \ / _ \ _ / |___ \
/ _ \ / __| __| '__/ _ \| '_ \ / _ \| '__| __| __) | | | | (_) | | __) |
/ ___ \\__ \ |_| | | (_) | |_) | (_) | | | |_ / __/| |_| | _ | |/ __/
/_/ \_\___/\__|_| \___/| .__/ \___/|_| \__| |_____|\___/ (_) |_|_____|
|_|
--- Un JEu de Forêt Jardin en Monnaie Libre sur IPFS ---

View File

@ -1,58 +0,0 @@
#!/bin/bash
clear
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
# This is close to the endgame, but affords the player a last set of things to try and do.
# Obviously if you use this framework to create a game of your own, you can extend this massively.
echo
sleep 1
echo "Vous décidez de sortir de la Sation Astroport."
echo
echoleverstate=`cat ../logic/stationlogic.ben`
if [ "$leverstate" = "on" ]; then
sleep 2
echo "Il ne dépend que de vous d'explorer ce nouveau futur."
echo "Le Visa MadeInZion inaugure un monde sans territoire, sans frontière, transnationnal, interplanétaire, à vous de voir?"
sleep 2
echo "Avant de nous rejoindre. Visitez notre 'bon coin' https://gchange.fr "
echo
sleep 3
echo "Ouvrez une ambassade? Installez IPFS, devenons hébergeur, fournisseur d'accès de nos Internets."
echo
sleep 4
echo "Ouvrez votre propriété au futur en commun, activez Astroport."
echo "Nous organisons des formations habitats posés, vissés et cousus. Eau potable. Biogaz, Marmite Norvégienne..."
echo "Comment nourrir le sol, reconnaitre les plantes... Redevenir ceuilleur, créateur."
echo
else
echo ""
echo "Aucune entrée n'est visible."
fi
echo
sleep 5
echo
echo "Que voulez vous faire?"
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) echo "Pas moyen de se déplacer." ;;
s ) echo ".Pas le choix." ;;
e ) echo "Pas par là." ;;
w ) echo "Plus à l'ouest que ça? Y'a pas!" ;;
u ) ./end.sh
exit ;;
h ) echo "Comment refuser une telle proposition..." ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,62 +0,0 @@
#!/bin/bash
clear
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
sleep 1
# Here's this room's script.
echo "Sur la direction du sud, vous traversez une zone plus sombre et humide."
echo "Le sol est glissant à cause de l'argile qui colle sous vos bottes"
echo "Vous finissez par croiser un chemin qui traverse la forêt d'Est en Ouest"
echo
echo "Un terminal informatique est installé là."
echo
echo "Il ressemble à une grosse calculatrice"
# Here we tell the player whether the lever is on or off.
leverstate=`cat ../logic/leverlogic.ben`
if [ "$leverstate" = "on" ]; then
echo "'VISA SVP' clignote sur l'écran..."
else
echo "La machine affiche l'heure : 20:12"
fi
echo
echo "Il est tard pour explorer le chemin à pied, vous devriez retourner d'où vous venez."
echo
echo "Que faites vous?"
# In this set of actons lies the logic switch used later in the game.
# You have to set this switch to reach the endgame.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) ./mainroom.sh
exit ;;
s ) echo "Si vous continuez à marcher dans la forêt. Vous allez vous perdre. Demi tour." ;;
e ) echo "Le chemin qui part à l'Est est plein de boue... Impossble d'aller par là." ;;
w ) echo "Une rivière vous empêche de passer." ;;
u ) leverstate=`cat ../logic/leverlogic.ben`
if [ "$leverstate" = "on" ]; then
echo "A chaque frappe d'une touche. l'écran fait défiler le texte 'SCANNEZ VISA SVP'."
else
sed -i='' 's/off/on/' ../logic/leverlogic.ben
echo "Vous pianotez sur l'appareil..."
sleep 3
echo "A moment où vous touchez la touche '#' L'écran se met à clignoter..."
echo "Puis le message 'ACTIVATION STATION' défile sur les caractères lumineux."
fi
;;
h ) echo "Le terminal comporte un clavier numérique. Un petit écran.. Il est réalisé avec un mini ordinateur Raspberry Pi. Il porte l'adresse G1TAG [https://g1sms.fr]" ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,198 +0,0 @@
#!/bin/bash
clear
echo "_________ __ .__ "
echo "\_ ___ \_______ ____ _____ _/ |_|__| ____ ____ "
echo "/ \ \/\_ __ \_/ __ \\__ \\ __\ |/ _ \ / \ "
echo "\ \____| | \/\ ___/ / __ \| | | ( <_> ) | \ "
echo " \______ /|__| \___ >____ /__| |__|\____/|___| / "
echo " \/ \/ \/ \/ "
# Vérifier si le dossier "personnages" existe, sinon le créer
dossier_personnages="personnages"
if [ ! -d "$dossier_personnages" ]; then
mkdir "$dossier_personnages"> /dev/null 2>&1
fi
# Fonction pour afficher les options et obtenir un choix de l'utilisateur
afficher_options() {
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Options disponibles :"
echo "1. Créer un nouveau personnage"
echo "2. Charger un personnage existant"
echo "3. Quitter"
echo "4. Commencer à jouer"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
}
# Fonction pour créer un personnage
creer_personnage() {
read -p "Entrez le nom de votre personnage : " nom
echo "Classes disponibles :"
echo "1. Bicraveur : Vendez ce qui est impossible à vendre + 10 en dextérité"
echo "2. Nikmook : Il a un besoin irrémédiable de séduire les daronnes + 10 en agilité"
echo "3. Freefighter : Doit devenir le plus fort en combat + 10 en Force"
echo "4. Hacker : Doit trouver un fichier compromettant sur le proviseur pour réussir + 10 en Intelligence"
read -p "Choisissez une classe (1/2/3/4) : " classe
case $classe in
1)
classe="Bicraveur"
;;
2)
classe="Nikmook"
;;
3)
classe="Freefighter"
;;
4)
classe="Hacker"
;;
*)
echo "Classe invalide."
return
;;
esac
mkdir "personnages/$nom"> /dev/null 2>&1
echo "Équipements disponibles :"
echo "1. Sacoche Lacoste + 5 en dextérité"
echo "2. Bâton magique +5 en agilité"
echo "3. Gant de boxe +5 en force"
echo "4. Laptop +5 en Intelligence"
read -p "Choisissez un équipement (1/2/3/4) : " equipement
case $equipement in
1)
equipement="Sacoche Lacoste"
;;
2)
equipement="Bâton magique"
;;
3)
equipement="Gant de boxe"
;;
4)
equipement="Laptop"
;;
*)
echo "Équipement invalide."
return
;;
esac
# Créer un fichier de sauvegarde pour le personnage
nom_fichier="$dossier_personnages/$nom/$nom.txt"
stats="$dossier_personnages/$nom/$nom_fichier_stats.txt"
echo "Nom : $nom" > "$nom_fichier"
echo "Classe : $classe" >> "$nom_fichier"
echo "Équipement de base : $equipement" >> "$nom_fichier"
echo "Point de vie : 100" > "$nom_fichier_stats"
# Assurez-vous que le fichier stats existe
stats="$dossier_personnages/$nom/$nom-fichier_stats.txt"
if [ ! -f "$stats" ]; then
echo "Point de vie : 100" > "$stats"
echo "Dextérité : 0" >> "$stats"
echo "Force : 0" >> "$stats"
echo "Agilité : 0" >> "$stats"
echo "Intelligence : 0" >> "$stats"
fi
# Mettez à jour les points en fonction de la classe
case $classe in
"Bicraveur")
sed -i "s/Dextérité : .*/Dextérité : 10/" "$stats"
;;
"Nikmook")
sed -i "s/Agilité : .*/Agilité : 10/" "$stats"
;;
"Freefighter")
sed -i "s/Force : .*/Force : 10/" "$stats"
;;
"Hacker")
sed -i "s/Intelligence : .*/Intelligence : 10/" "$stats"
;;
esac
mkdir "$dossier_personnages/$nom/$nom-inventaire.txt"> /dev/null 2>&1
# Mettez à jour les points en fonction de l'équipement
case $equipement in
"Sacoche Lacoste")
# Obtenir la valeur actuelle de la dextérité
valeur_dexterite=$(grep "Dextérité" "$stats" | awk '{print $3}')
# Ajouter 5 à la valeur actuelle et mettre à jour le fichier
nouvelle_dexterite=$((valeur_dexterite + 5))
sed -i "s/Dextérité : .*/Dextérité : $nouvelle_dexterite/" "$stats"
;;
"Bâton magique")
# Obtenir la valeur actuelle de l'agilité
valeur_agilite=$(grep "Agilité" "$stats" | awk '{print $3}')
# Ajouter 5 à la valeur actuelle et mettre à jour le fichier
nouvelle_agilite=$((valeur_agilite + 5))
sed -i "s/Agilité : .*/Agilité : $nouvelle_agilite/" "$stats"
;;
"Gant de boxe")
# Obtenir la valeur actuelle de la force
valeur_force=$(grep "Force" "$stats" | awk '{print $3}')
# Ajouter 5 à la valeur actuelle et mettre à jour le fichier
nouvelle_force=$((valeur_force + 5))
sed -i "s/Force : .*/Force : $nouvelle_force/" "$stats"
;;
"Laptop")
# Obtenir la valeur actuelle de l'intelligence
valeur_intelligence=$(grep "Intelligence" "$stats" | awk '{print $3}')
# Ajouter 5 à la valeur actuelle et mettre à jour le fichier
nouvelle_intelligence=$((valeur_intelligence + 5))
sed -i "s/Intelligence : .*/Intelligence : $nouvelle_intelligence/" "$stats"
;;
esac
# Enregistrez l'équipement dans un fichier équipement
equipement_file="$dossier_personnages/$nom/$nom-equipement.txt"
echo "Équipement choisi : $equipement" > "$equipement_file"
echo "Personnage créé et sauvegardé dans $nom_fichier."
}
# Boucle principale
while true; do
afficher_options
read -p "Choisissez une option (1/2/3) : " choix
case $choix in
1)
creer_personnage
;;
2)
echo ""
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
ls personnages/
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo ""
read -p "Entrez le nom du personnage à charger : " nom
nom_fichier="$dossier_personnages/$nom/$nom.txt"
if [ -f "$nom_fichier" ]; then
cat "$nom_fichier"
else
echo "Personnage introuvable."
fi
;;
3)
exit
;;
4)
# Exécutez le script menu.sh
./menu.sh "$nom"
;;
*)
echo "Option invalide. Veuillez choisir une option valide."
;;
esac
done
# Effacer l'écran avant de passer à la suite du jeu
clear

View File

@ -1,46 +0,0 @@
#!/bin/bash
# Fonction pour afficher le texte avec une pause entre les lignes
afficher_texte() {
while read -r ligne; do
echo "$ligne"
sleep 1 # Pause d'une seconde entre chaque ligne
done
}
# Titre du jeu
clear # Effacer l'écran
echo "_______ .__ __ __ "
echo " \ \ |__| | __ _____ ____ ____ | | __"
echo " / | \| | |/ // \ / _ \ / _ \| |/ /"
echo "/ | \ | <| Y Y ( <_> | <_> ) < "
echo "\____|__ /__|__|_ \__|_| /\____/ \____/|__|_ \""
echo " \/ \/ \/ \/"
echo "Bienvenue dans le jeu!"
echo
# Histoire
echo "Il était une fois, dans un lointain royaume.. un gosse mal éduquer"
echo "Un batard courageux se prépare à entreprendre une quête épique."
echo "Votre mission est de BAISER des mères périlleuses."
echo
echo "Appuyez sur ESPACE pour continuer..."
read -n 1 touche # Attendre que l'utilisateur appuie sur ESPACE
echo
# Effacer l'écran avant de passer à la suite du jeu
clear
# Vous pouvez continuer à développer votre jeu à partir d'ici en ajoutant plus de fonctionnalités et de pages.
#read -n 1 touche # Attendre que l'utilisateur appuie sur ESPACE
echo
# Exécuter le script suite.sh
if [ "$touche" == "" ]; then
./choix.sh
fi
# Effacer l'écran avant de passer à la suite du jeu
clear

View File

@ -1,70 +0,0 @@
#!/bin/bash
echo "+--------+ +----------------------------------------------------+"
echo "| Entrée |"
echo "| +---------------+ | "RDC" "
echo "| | | |"
echo "| +---+ +----+ | Escalier | |"
echo "| | Acceuil | | | |"
echo "| | | +---------------+ |"
echo "| +-----------+ |"
echo "| |"
echo "|---------------+ +----------------+ +-------------------|"
echo "| | | | | |"
echo "| Salle cours 1 | | Salle cours 2 | | Salle cours 3 |"
echo "| | | | | |"
echo "|----+ +-------+ +----+ +--------+ +----+ +-----------|"
echo "| |"
echo "|----+ +-------+ +----+ +--------+ +----+ +-----------|"
echo "| | | | | |"
echo "| Salle cours 4 | | Salle cours 5 | | |"
echo "| | | | | |"
echo "|----+ +-------+ +----+ +--------+ + |"
echo "| Cantine |"
echo "|----+ +-------+ +----+ +--------+ + |"
echo "| | | | | |"
echo "| Salle cours 7 | | Salle cours 8 | | |"
echo "| | | | | |"
echo "|----+ +-------+ +----+ +--------+ +----+ +-----------|"
echo "| |"
echo "|----+ +-------+ +----+ +--------+ +----+ +-----------|"
echo "| | | | | |"
echo "| Concièrge | | Bibliothèque | | CDI |"
echo "| | | | | |"
echo "|---------------+ +----------------+ +-------------------|"
echo "+-----------------+ +-------------------------------------------+------------------------+"
echo "| |---| |---| |---| |---| |"
echo "| |"
echo "| |"
echo "| |"
echo "| |"
echo "| Récréation |"
echo "| /\\ /\\ /\\ /\\ |"
echo "| / \\ / \\ / \\ / \\ |"
echo "| /____\\ /____\\ /____\\ /____\\ |"
echo "| |"
echo "| |"
echo "||---| |---| |---| |"
echo "+--------+ +-------------------------------------+ +----------+-------------------------+"
echo "| Terrain de | |"
echo "| Basketball | |"
echo "| | |"
echo "| ___________ | |"
echo "| / \\ | |"
echo "| / \\ | |"
echo "| | | | |"
echo "| | | | |"
echo "| | | | |"
echo "| | | | |"
echo "| | | | |"
echo "| | | | |"
echo "| | | | |"
echo "| \\ / | |"
echo "| \\___________/ | |"
echo "| | |"
echo "+-------------------------------------------+ |"
echo "| "Coin fumeur" |"
echo "+----------------------------------------------------------+"
# À la fin de map.sh
echo "Appuyez sur Enter pour revenir au menu principal."
read -s -n 1 # Attendre que l'utilisateur appuie sur une touche

View File

@ -1,71 +0,0 @@
#!/bin/bash
clear
# This is the endgame. This file does nothing but give you the final bit of storyline.
# Use (over-use) of 'sleep' is for dramatic effect - play around with it, see how it reads.
# Let's reset the lever, now that we're done with it.
sed -i='' 's/on/off/' ../logic/leverlogic.ben
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
sleep 1
echo "Voici la fin de cette petite aventure."
echo
sleep 4
echo "Vous venez de visiter la forêt où s'est posé Astroport ONE."
sleep 3
echo
echo "Une oeuvre habitable. Un jardin sur sol vivant. Un progamme pair à pair interplanétaire"
sleep 4
echo
echo "Les terraformeurs"
echo "En quête de la meilleure façon de vivre sur le vaisseau spatial Terre..."
echo
sleep 5
echo "Vous aussi ouvrez votre Ambassade."
echo "Activez le JEu. Invitez vos visiteurs à rêver d'un monde meilleur"
echo "Reproduisez, améliorez, partagez les plans pour y parvenir."
echo
sleep 7
echo "Il est l'heure de laisser derrière vous la civilisation thermo industrielle."
echo "Gagnez en autonomie, en convivialité, en optimisme, en conscience."
echo
sleep 5
echo
echo "EMBARQUEZ VERS LE FUTUR"
echo
sleep 9
echo
file1="../art/bigfinish.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
echo
read -p "Appuyez sur [ENTER] pour terminer..."
echo
clear
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
echo "Merci d'avoir joué le jeu"
echo "Je suis heureux de vous avoir fait partager le rêve des astronautes terraformeurs."
echo
echo "Le futur ne se prédit pas, il se construit. Il se vit."
echo
echo " - @Fred"
echo
# That's all, folks!
exit

View File

@ -1,88 +0,0 @@
#!/bin/bash
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
clear
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# This room gives the player a typical poisoned apple style scenaro.
# Just because something looks shiny and fun, doesn't make it any
# less deadly.
sleep 1
echo "Dans une cabine, un écran est disposé en coin. Un tout petit ordinateur"
echo "y est raccordé... D'autres fils sortent de l'appareil. Une webcam. Une imprimante."
echo
echo "Que voulez vous faire?"
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
[[ ! $myIP || $isLAN ]] && myIP="127.0.1.1"
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) echo "Vous êtes dans une cabine. Des QRCode sont collés à la parois nord" ;;
s ) echo "Cette paroie comporte un miroir. Pour se faire une beauté avant d'enregistrer une capsule vidéo." ;;
w ) ./kroo.sh
exit ;;
e ) echo "Vous êtes face à l'écran. Au dessus des hauts parleurs, une webcam" ;;
u ) leverstate=`cat ../logic/stationlogic.ben`
if [ "$leverstate" = "on" ]; then
echo "A chaque frappe d'une touche. l'écran fait défiler le texte 'SCANNEZ VISA SVP'."
else
sed -i='' 's/off/on/' ../logic/stationlogic.ben
echo "Vous appuyez sur l'interupteur de l'écran. Y apparaît alors :"
sleep 3
echo "AMBASSADE MadeInZion - TerraPi4 - 2 To -"
echo ""
echo
sleep 2
echo "INTERNET est dangereux. il vend vos information personnelles pour que vous deveniez un produit. "
sleep 2
echo
echo "Rebootez INTERNET. Activez votre TW sur le Système de Fichiers Interplanétaire (IPFS)."
sleep 2
echo
echo "On y échange en pair à pair. La monnaie y est Libre."
sleep 4
file1="../art/astrored.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
echo
echo "____ Astroport déclenche à 20:12 la synchronisation de ses ambassades..."
echo "Rapport 2022 : https://ipfs.asycn.io/ipfs/QmUtGpGeMZvwp47ftqebVmoFWCmvroy5wEtWsKvWvDWJpR"
sleep 3
echo
echo "ASTROPORT ONE"
echo "VISA pour le vaisseau spatial TERRE."
if [[ -d ~/.zen/Astroport.ONE ]]; then
read -p "Appuyez sur [ENTER] pour activer votre Station Astroport.ONE"
espeak "Astroport Command" > /dev/null 2>&1
~/.zen/Astroport.ONE/command.sh
else
espeak "Please Install Astroport" > /dev/null 2>&1
echo "Install Astroport.ONE ..."
echo "bash <(wget -qO- https://raw.githubusercontent.com/papiche/Astroport.ONE/master/install.sh)"
./end.sh
fi
fi
exit
;;
h ) echo "'DEMARRER API http://$myIP:1234 ... Une Station Astroport.ONE.?." ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,38 +0,0 @@
#!/bin/bash
clear
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# Everybody clap your hands. I mean, here is the script.
sleep 1
echo "Vous atteignez une zone remplie de jeunes épineux"
echo "Vous reconnaissez des prunus, des aubépines."
echo "Quelques génévriers dont vous remarquez les baies noires."
echo "Un peu plus loin ce sont les ronces."
echo
echo "Plus vous progressez plus vous souffrez des épines. Existe-t-il un passage? Qui sait."
echo
echo "Que voulez vous faire?"
# And here's what you could have won...
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) echo "Un énorme roncier vous barre la route. Ca ne passe pas." ;;
s ) echo "Vers le sud, aucun passage en vue." ;;
e ) ./mainroom.sh
exit ;;
w ) echo "Vous voyez le même paysage à perte de vue" ;;
u ) echo "Vous cueillez une baie de genèvrier. Vous la portez à la bouche. Croquez. La saveur est délicieuse. La force de la plante vous envahi." ;;
h ) echo "Ce type de terrain est caractéritique des zones déboisées. La nature sort ses épines pour protéger les arbres qui poussent en dessous." ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,35 +0,0 @@
#!/bin/bash
clear
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# I like this room. There is no way to get out of it alive.
sleep 1
echo "Un évier derrière une fenère, une ancienne porte d'armoire comme table."
echo "Un meuble fait de planches de bois cousues rempli de bocaux"
echo "Une glacière recouverte d'une couche d'isolant Un bruleur à gaz."
echo "C'est un espace pour cuisiner."
sleep 3
echo
echo "Vous avez soif. Un filtre à eau gravitationnel vous fait face"
echo "vous attraper un gobelet et le remplissez à raz bord du liquide de la bombone"
echo "Vous portez le verre à vos lèvres..."
echo
sleep 5
echo "A la première gorgée vous vous sentez ramolir. Comment savoir combien vous avez bu"
echo "quand votre corps devenu impossible à garder droit s'est éffondré sur le sol."
echo "Simplement le temps de vous demander pourquoi?"
echo
echo "Vous sombrez dans l'inconscience."
sleep 4
echo "VOUS VOUS SENTEZ DECOLLER."
echo
read -p "Appuyez sur [ENTER] pour revenir..."
./mainroom.sh
exit

View File

@ -1,58 +0,0 @@
#!/bin/bash
clear
# This room gets a little artsy with sleep commands, to help with the
# narrative of the story. This is why there are two versions - foyer and foyer2.
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# It's script time again...
sleep 1
echo "Vous pénétrez à l'intérieur de l'Astroport."
echo
sleep 3
echo "Une voix synthétique vous accueille."
espeak "Welcome. Please Identify." > /dev/null 2>&1
echo
echo "Vous parcourez l'espace du regard"
echo "Au nord, face à vous se trouve un foyer où brule un feu."
echo
sleep 3
echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?"
echo "A l'est il y a un genre de 'photomaton' "
sleep 2
echo "Derrière vous, la porte par où vous êtes entré est encore ouverte."
echo
echo "Que voulez vous faire?"
# And once again the room logic.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) echo "Vous vous asseyez sur le grand tapis devant le feu. Vous vous relaxez un instant."
./magic8.sh
;;
s ) ./bigroom.sh
exit ;;
e ) ./gameroom.sh
exit ;;
w ) ./grue.sh
exit ;;
u ) echo "Vous tapotez sur le barmoètre. Une photo satellite?"
./meteofrance.sh
exit
;;
h ) echo "La pièce est spacieuse. La chaleur du feu agréable, à gauche on dirait une cuisine explosée, à droite une chaise moletonnée fait face à un écran." ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,40 +0,0 @@
#!/bin/bash
clear
# Initialise the Title Art
file1="titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# So here's a little story all about how this script got flip-turned upside down...
sleep 1
echo "You're in a corridor, but it's quite a small one. You got here"
echo "the first time by hugging a statue of a kitten. Standard."
echo
echo "You see a glow coming from the rooms to your east and west, and"
echo "there's a big, old looking door to the south of you."
echo
echo "What would you like to do?"
# Imma let you finish, but here's the room choices.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) echo "You faceplant the wall. Idiot." ;;
s ) ./bigroom.sh
exit ;;
e ) ./gameroom.sh
exit ;;
w ) ./grue.sh
exit ;;
u ) echo "There's nothing you can use right here." ;;
h ) echo "After hugging that cat you aren't sure you should try to hug yourself again." ;;
* ) echo "I'm sorry, I don't understand you. Commands are: n, e, s, w, u and h.";;
esac
done
esac
exit

View File

@ -1,29 +0,0 @@
#!/bin/bash
# magic 8 ball. Yup. Pick a random number, output message
# source: https://www.linuxjournal.com/content/bash-shell-games-lets-play-go-fish
answers=("Oui c'est certain." "C'est carrément ça."
"Sans aucun doute." "Oui - assurément."
"Comptez la dessus." "Comme je le vois, oui." "Très probablement."
"Bonne perspective." "Oui." "Les signes indiquent que oui."
"Réponse floue, essayez à nouveau." "Redemandez plus tard."
"Il vaut mieux ne pas vous le dire maintenant.." "Impossible de prédire maintenant."
"Concentrez-vous et demandez à nouveau." "N'y comptez pas."
"Ma réponse est non." "Mes sources disent que non."
"Rien de bon." "Très douteux.")
echo "Oh ! Boule magique, dis-moi la vérité, s'il te plaît...." ; echo ""
/bin/echo -n "Quelle est votre question ? "
read question
answer=$(( $RANDOM % 20 ))
echo ""
echo "J'ai regardé dans le futur et je dis: "
echo " ${answers[$answer]}" ; echo ""
sleep 3
./mainroom.sh
exit

View File

@ -1,45 +0,0 @@
#!/bin/bash
clear
# This is a repeat of the opening room in the start.sh file - if the player
# wants to go back to the main room, this saves going through the whole
# start script over again.
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# Shakesphere wrote this, honest.
sleep 1
echo "Vous êtes de retour à votre point de départ."
echo "La forêt qui vous entoure est immense."
echo "Vous ne pouvez pas vraiment en imaginer la taille,"
echo
echo "Vous pouvez vous diriger au nord, à l'est, au sud et à l'ouest."
echo
echo "Que voulez-vous faire ?"
# And the room logic once again.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) ./white.sh
exit ;;
s ) ./brown.sh
exit ;;
e ) ./red.sh
exit ;;
w ) ./green.sh
exit ;;
u ) echo "Il n'y a rien que vous puissiez utiliser ici." ;;
h ) echo "Vous observez votre montre, il est 20:12" ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,58 +0,0 @@
#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
mkdir -p ~/.zen/tmp/${MOATS}
################################################################################
# Choisir la source de capture
# https://fr.sat24.com/image?type=visual5HDComplete&region=fr
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
## TEST IPFS
[[ ! $(which ipfs) ]] && echo "Missing IPFS. Please install... https://ipfs.tech" && exit 1
## PREPARE FILE SYSTEM CACHE
mkdir -p ~/.zen/adventure/meteo.anim.eu
rm -f ~/.zen/adventure/meteo.anim.eu/meteo.png
## SCRAPING meteo.png
curl -m 20 --output ~/.zen/adventure/meteo.anim.eu/meteo.png https://s.w-x.co/staticmaps/wu/wu/satir1200_cur/europ/animate.png
if [[ ! -f ~/.zen/adventure/meteo.anim.eu/meteo.png ]]; then
echo "Impossible de se connecter au service meteo"
exit 1
else
echo "Mise à jour archive meteo : ${MOATS}"
echo ${MOATS} > ~/.zen/adventure/meteo.anim.eu/.moats
OLDID=$(cat ~/.zen/adventure/.meteo.index 2>/dev/null)
# TODO : COMPARE SIMILAR OR NOT
# ipfs get "/ipfs/$OLDID/meteo.anim.eu/meteo.png"
## PREPARE NEW index.html
sed "s/_OLDID_/$OLDID/g" ${MY_PATH}/../templates/meteo_chain.html > /tmp/index.html
sed -i "s/_IPFSID_/$IPFSID/g" /tmp/index.html
sed -i "s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g" /tmp/index.html
sed "s/_PSEUDO_/${USER}/g" /tmp/index.html > ~/.zen/adventure/index.html
# Copy style css
cp -r ${MY_PATH}/../templates/styles ~/.zen/adventure/
INDEXID=$(ipfs add -rHq ~/.zen/adventure/* | tail -n 1)
echo $INDEXID > ~/.zen/adventure/.meteo.index
echo "METEO INDEX : http://127.0.0.1:8080/ipfs/$INDEXID"
IPFS=$(ipfs add -q ~/.zen/adventure/meteo.anim.eu/meteo.png | tail -n 1)
echo $IPFS > ~/.zen/adventure/meteo.anim.eu/.chain
fi

View File

@ -1,41 +0,0 @@
#!/bin/bash
clear
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# Set up the script for this room. It's a simple one!
sleep 1
echo "Vous entrez dans l'ancienne bergerie."
echo "Un canapé mauve est installé au milieu de l'espace"
echo "Une bache transparente vous sépare du ciel."
echo
echo "Vous êtes dans une serre."
echo "Une seule sortie. A l'Ouest, d'où vous venez."
echo
echo "Que voulez-vous faire?"
# And the choices go here.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) echo "Une fente dans le mur vous laisse observer une carcasse de voiture. Une vieille 2cv. Un grillage vous empêche de passer." ;;
s ) echo "L'emplacement d'un grand feu se trouve la. Il ne reste que de la cendre." ;;
e ) echo "Une autre pièce remplie de gravats et d'éboulis se trouve devant vous. Impossible d'y accéder." ;;
w ) ./mainroom.sh
exit ;;
u ) echo "Vous vous asseyez dans le canapé. Vous vous sentez immédiatement happé par un nuage."
sleep 2
xdg-open "https://www.copylaradio.com/blog/blog-1/post/le-pas-a-pas-qui-libere-du-grand-mechant-cloud-36#scrollTop=0"
;;
h ) echo "Aucun détail particulier si ce n'est une tache sur le sofa." ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,72 +0,0 @@
#!/bin/bash
clear
# Logic in the game is stored in .ben files. This sample has just one 'logic' file.
# You can add more logic files by simply adding a 'sed' command and appropriate .ben file.
# First off, let us reset the game logic. Use this as an example.
sed -i='' 's/on/off/' ../logic/leverlogic.ben
# Who doen't love ASCII text, right?
# Next up, let's initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# Next up, let's load in the initial introduction. Script is also stored in .ben files.
sleep 5
file2="../script/opening.ben"
while IFS= read -r line
do
echo "$line"
done <"$file2"
read -p "Pressez sur [ENTER] pour démarrer..."
#Okay, now that the introduction is out of the way, we can start the first room!
clear
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
sleep 1
# Here's where you introduce the room to the player. Be sure to tell them if there
# Are exits - but don't give too much away. Make it fun for them to explore!
echo
echo "La téléportation vous a placé debout au centre d'une clairière."
echo "Vous vous trouvez près d'une ancienne bergerie aux gros murs de pierres."
echo "Le toit et une bonne partie des murs sont effondrés."
echo
echo "Tout autour la forêt. Des feuillus. Quelques arbustres épineux."
echo "Sous vos pieds. Le sol est rouge parsemé de cailloux blancs."
echo
echo "Vous pouvez vous diriger selon les points cardinaux."
echo "Au nord un chemin remonte, au sud un passage descend, à l'est, la bergerie, à l'ouest, des traces d'animaux"
echo
echo "Que voulez-vous faire? Les commandes sont : n, e, s, w, u et h."
# Now we wait for their response - and send them somewhere accordingly.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) ./white.sh
exit ;; # These lines will take the player to a new room - a new script file.
s ) ./brown.sh
exit ;; # Be sure to include 'exit' otherwise the game won't quit properly!
e ) ./red.sh
exit ;;
w ) ./green.sh
exit ;;
u ) echo "Vous ouvrez votre sac il contient une tente, des vêtements, un thermos, une scie pliante et un couteau" ;; # Something to say? You can also just echo.
h ) echo "Comment avez-vous pu arriver ici.? Des souvenirs vous reviennent... https://ipfs.copylaradio.com/ipfs/QmWyCFvvvrE1xWudCnc14oDvaztLaRZ4guvQFVkkDLwa23#JOUR%201.%20PLANETE%201." ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,62 +0,0 @@
#!/bin/bash
clear
# Initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
#Setting up the room...
sleep 1
echo "Vous parcourez un chemin qui monte en direction du nord.."
echo "Au sommet de cette petite colline vous découvrez un magestueux chêne"
echo "trônant au centre d'une clairière lumineuse. La forêt à cet endroit"
echo "forme un cercle tout autour..."
echo
echo "Un Astroport fait de vitres, de planches, de tôles et de chevrons"
echo "est posé là. Eclairé par les rayons du soleil."
echo
# Here we're going to check to see if the lever - the only logic we are using in this game - is on or off.
leverstate=`cat ../logic/leverlogic.ben`
if [ "$leverstate" = "on" ]; then
echo "Une poignée est apparue sur la porte de la façade..."
else
echo "Vous en faites le tour..."
echo "Aucune entrée n'est visible."
fi
echo
echo "Pas d'autre chemin praticable que celui d'où vous venez."
echo
echo "Que voulez-vous faire ?"
# Now lets capture this room's actions. Note that here, the actions change depending on whether or not
# the lever is on or off. If it's on, you go elsewhere. If it's off, you don't.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) echo "Vous vous aventurez dans la forêt plus au nord. Sans boussole, vous allez vous perdre rapidement... " ;;
s ) ./mainroom.sh
exit ;;
e ) echo "Une corniche surplombe un ruisseau qui coule dans le fond de la ravine. Impossible de passer sans équipement" ;;
w ) echo "Vous voilà face à un Jardin luxuriant. Une cloture électrique le délimite et en empêche l'accès." ;;
h ) echo "Vous voyez à l'interieur de la Station une video en cours de projection..."
sleep 2
xdg-open "https://www.youtube.com/embed/Yk-WRXKysXM"
;;
u ) leverstate=`cat ../logic/leverlogic.ben`
if [ "$leverstate" = "on" ]; then
./kroo.sh
exit
else
echo "Vous cherchez une ouverture... Pas la moindre. Impossible d'entrer sans commettre une effraction..."
fi
;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
esac
exit

View File

@ -1,23 +0,0 @@
Message de la Confédération Interplanétaire
La planète où vous vous trouvez est en danger. Les menaces sont nombreuses.
Vos gouvernements se disputent les dernières ressources. Le cycle du vivant est perturbé !
Le "contrat social" des 'pays civilisés' vascille. Les technocrates réclament plus de contrôle.
La commission extraterrestre est formelle. Vous êtes en danger.
Heureusement la monnaie libre a été découverte sur votre planète!
Elle s'utilise dans un jeu 'grandeur nature'. Astroport 20:12
Bienvenue dans l'aventure du changement de civilisation.
Les commandes pour vous déplacer et interagir sont
'n' aller au nord,
's' aller au sud,
'e' aller à l'est,
'w' aller à l'ouest,
'u' utiliser,
'h' observer plus en détail.
Ctrl-C pour quitter.
- - -

View File

@ -0,0 +1,56 @@
# SCRIPT01.CYBSEC
Jeu du pendu
+ 10 : game engine
+2 : multigame compatibility
+1 : shellcheck
> final 13
## "GameShell" LEVEL ?
## DIFFs
``
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Seulement dans ../_votre jeu/: art
Seulement dans ../_votre jeu/: logic
Seulement dans ./: readme
Seulement dans ../_votre jeu/rooms: bigroom.sh
Seulement dans ../_votre jeu/rooms: brown.sh
Seulement dans ../_votre jeu/rooms: end.sh
Seulement dans ../_votre jeu/rooms: gameroom.sh
Seulement dans ../_votre jeu/rooms: green.sh
Seulement dans ../_votre jeu/rooms: grue.sh
Seulement dans ../_votre jeu/rooms: kroo2.sh
Seulement dans ../_votre jeu/rooms: kroo.sh
Seulement dans ../_votre jeu/rooms: magic8.sh
Seulement dans ../_votre jeu/rooms: mainroom.sh
Seulement dans ../_votre jeu/rooms: meteofrance.sh
Seulement dans ../_votre jeu/rooms: red.sh
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Seulement dans ../_votre jeu/rooms: white.sh
Seulement dans ../_votre jeu/: script
```
```
diff rooms/start.sh ../_votre\ jeu/rooms/start.sh
```
Single file game
## shellcheck
```
shellcheck rooms/*
```
## modifs apportées
* chmod +x rooms/start.sh

0
adventure/games/baptiste.puig@ynov.com/rooms/start.sh Normal file → Executable file
View File

View File

@ -0,0 +1,45 @@
# SCRIPT01.CYBSEC
+ 19 : game engine
-2 : multigame compatibility
-1 : shellcheck
> final 16
## "GameShell" LEVEL ?
## DIFFs
``
diff --recursive --brief ./ ../_votre\ jeu/
```
Seulement dans ../_votre jeu/: adventure.sh
Seulement dans ./: CODE
Seulement dans ./: Cyril.marty@ynov.com - Raccourci.lnk
Seulement dans ./rooms: code
```
diff rooms/start.sh ../_votre\ jeu/rooms/start.sh
```
start.sh sont identiques
## shellcheck
```
shellcheck rooms/code/*
In choix.sh line 2:
#!/bin/bash
^-- SC1128: The shebang must be on the first line. Delete blanks and move comments.
```
## modifs apportées
* supprimer fichiers inutiles
* rendre exécutable le script avec ```git push```
chmod +x *.sh
* renommer menu.sh -> start.sh

View File

@ -1,3 +1,72 @@
# SCRIPT01.CYBSEC
Master Guesser
+ 15 : game engine
-2 : multigame compatibility
+1 : shellcheck
> final 14
## "GameShell" LEVEL ?
## DIFFs
``
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Seulement dans ./logic: leverlogic2.ben
Seulement dans ./logic: leverlogic2.ben=
Les fichiers ./logic/leverlogic.ben et ../_votre jeu/logic/leverlogic.ben sont différents
Seulement dans ./logic: leverlogic.ben=
Seulement dans ./logic: stationlogic2.ben
Seulement dans ./: masterguesser.sh
Seulement dans ./: music
Seulement dans ./: README
Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents
Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents
Seulement dans ./rooms: kroo3.sh
Les fichiers ./rooms/mainroom.sh et ../_votre jeu/rooms/mainroom.sh sont différents
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Les fichiers ./rooms/white.sh et ../_votre jeu/rooms/white.sh sont différents
Seulement dans ../_votre jeu/: script
```
## Test
```
> d
Vous récupérez un écran portatif interactif par terre.
Appuyez sur Entrée pour continuer...
./start.sh: ligne 62: ./riddle.sh: Aucun fichier ou dossier de ce type
```
```
mv mastergusser.sh rooms/riddle.sh
```
```
./riddle.sh: ligne 20 : kill: (88137) - Aucun processus de ce type
```
```
mplayerrunning=$(ps axf --sort=+utime | grep -w 'mplayer' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
[[ $mplayerrunning ]] && kill $mplayerrunning
```
```
shellcheck rooms/riddle.sh
```
OK
---
Created by Damien Espenel
mail : damien.espenel@ynov.com

View File

@ -10,15 +10,21 @@ sleep 1
echo "Une seule règle, trouver le nombre aléatoire entre 1 et 100 !"
sleep 1
devine_le_nombre() {
read -p "Ton choix : " guess
# Vérification de la réponse
if [ $guess -eq $nombre_secret ]; then
echo "Félicitations ! Tu as deviné le nombre secret !"
echo "Fin de la session..."
kill $!
sleep 2
echo "Fin de la session..."
# kill $!
## CHECK FOR ANY ALREADY RUNNING mplayer
mplayerrunning=$(ps axf --sort=+utime | grep -w 'mplayer' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
[[ $mplayerrunning ]] && kill $mplayerrunning
exit 0
elif [ $guess -lt $nombre_secret ]; then
echo "Le nombre est plus grand."
devine_le_nombre

View File

@ -0,0 +1,37 @@
# SCRIPT01.CYBSEC
Enigma
+ 11 : game engine
+2 : multigame compatibility
+1 : shellcheck
> final 14
## "GameShell" LEVEL ?
## DIFFs
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Les fichiers ./logic/leverlogic.ben et ../_votre jeu/logic/leverlogic.ben sont différents
Seulement dans ./logic: leverlogic.ben=
Les fichiers ./logic/stationlogic.ben et ../_votre jeu/logic/stationlogic.ben sont différents
Seulement dans ./logic: stationlogic.ben=
Seulement dans ./: readme
Les fichiers ./rooms/red.sh et ../_votre jeu/rooms/red.sh sont différents
Seulement dans ./rooms: riddle.sh
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Seulement dans ./rooms: yellow.sh
```
```
shellcheck rooms/riddle.sh
```
OK
never ending trick...

View File

@ -0,0 +1 @@
ERROR

View File

@ -0,0 +1,48 @@
# SCRIPT01.CYBSEC
Morpius
+ 14 : game engine
+2 : multigame compatibility
+1 : shellcheck
> final 17
## "GameShell" LEVEL ?
## DIFFs
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Les fichiers ./logic/leverlogic.ben et ../_votre jeu/logic/leverlogic.ben sont différents
Seulement dans ./logic: leverlogic.ben=
Les fichiers ./logic/stationlogic.ben et ../_votre jeu/logic/stationlogic.ben sont différents
Seulement dans ./logic: stationlogic.ben=
Seulement dans ./: readme
Les fichiers ./rooms/red.sh et ../_votre jeu/rooms/red.sh sont différents
Seulement dans ./rooms: riddle.sh
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Seulement dans ./rooms: yellow.sh
```
```
shellcheck rooms/start.sh
In rooms/start.sh line 33:
if ! (echo ${board[@]} | grep -q '[0-8]'); then
^---------^ SC2068: Double quote array expansions to avoid re-splitting elements.
```
OK
fix
```
chmod +x rooms/start.sh
```

View File

@ -0,0 +1,68 @@
# SCRIPT01.CYBSEC
--- Un JEu des îles de l'Ocean Indien (974) ---
+ 14 : game engine
+2 : multigame compatibility
+1 : shellcheck
- 2 : bugs
> final 15
## "GameShell" LEVEL ?
## DIFFs
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ./: advendure_link.sh
Seulement dans ../_votre jeu/art: astrologo.ben
Seulement dans ../_votre jeu/art: astroportland.ben
Seulement dans ../_votre jeu/art: astrored.ben
Seulement dans ../_votre jeu/art: bigfinish.ben
Seulement dans ../_votre jeu/art: Gune.ben
Seulement dans ../_votre jeu/art: logoastro.ben
Seulement dans ../_votre jeu/art: supper.ben
Les fichiers ./art/titleart.ben et ../_votre jeu/art/titleart.ben sont différents
Seulement dans ./art: titleart.ben2
Seulement dans ../_votre jeu/: logic
Les fichiers ./rooms/brown.sh et ../_votre jeu/rooms/brown.sh sont différents
Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents
Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents
Les fichiers ./rooms/green.sh et ../_votre jeu/rooms/green.sh sont différents
Les fichiers ./rooms/grue.sh et ../_votre jeu/rooms/grue.sh sont différents
Seulement dans ./rooms: lanceur.sh
Les fichiers ./rooms/meteofrance.sh et ../_votre jeu/rooms/meteofrance.sh sont différents
Les fichiers ./rooms/red.sh et ../_votre jeu/rooms/red.sh sont différents
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Les fichiers ./rooms/white.sh et ../_votre jeu/rooms/white.sh sont différents
Les fichiers ./script/opening.ben et ../_votre jeu/script/opening.ben sont différents
```
```
shellcheck rooms/start.sh
In rooms/start.sh line 33:
if ! (echo ${board[@]} | grep -q '[0-8]'); then
^---------^ SC2068: Double quote array expansions to avoid re-splitting elements.
```
OK
bugs
```
Vous zntrée dans le taxi en direction du nord..
cat: ../logic/leverlogic.ben: Aucun fichier ou dossier de ce type
Il vous indique que ou se trouve l'aéroport. Vous devait vous diriger vers PierreFonds.
cat: ../logic/leverlogic.ben: Aucun fichier ou dossier de ce type
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View File

@ -0,0 +1,47 @@
# SCRIPT01.CYBSEC
kroo3.sh
+ 11 : game engine
+2 : multigame compatibility
+1 : shellcheck
- 1 : git sync
> final 13
## "GameShell" LEVEL ?
## DIFFs
```
diff --recursive --brief ./ ../_votre\ jeu/
Les fichiers ./adventure.sh et ../_votre jeu/adventure.sh sont différents
Seulement dans ./: game_map.png
Seulement dans ./: hacker.jpg
Seulement dans ./logic: leverlogic2.ben
Seulement dans ./logic: leverlogic2.ben=
Seulement dans ./logic: leverlogic.ben=
Seulement dans ./logic: stationlogic2.ben
Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents
Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents
Seulement dans ./rooms: kroo3.sh
Les fichiers ./rooms/mainroom.sh et ../_votre jeu/rooms/mainroom.sh sont différents
Seulement dans ./rooms: meteofrance2.sh
Les fichiers ./rooms/meteofrance.sh et ../_votre jeu/rooms/meteofrance.sh sont différents
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Les fichiers ./rooms/white.sh et ../_votre jeu/rooms/white.sh sont différents
Seulement dans ./: templates
```
```
search kroo3
------------------------------------------------------------------------------
Searching for kroo3 recursively. Please Wait...
------------------------------------------------------------------------------
./rooms/white.sh: ./kroo3.sh
```
Hacker infiltration style

View File

@ -0,0 +1,30 @@
# SCRIPT01.CYBSEC
wiggle.sh
+ 11 : game engine
+2 : multigame compatibility
+1 : shellcheck
- 1 : git sync
> final 13
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Les fichiers ./logic/leverlogic.ben et ../_votre jeu/logic/leverlogic.ben sont différents
Seulement dans ./logic: leverlogic.ben=
Les fichiers ./rooms/brown.sh et ../_votre jeu/rooms/brown.sh sont différents
Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents
Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents
Les fichiers ./rooms/kroo.sh et ../_votre jeu/rooms/kroo.sh sont différents
Seulement dans ./rooms: wiggle.sh
```
simple & fun

View File

@ -0,0 +1,75 @@
# SCRIPT01.CYBSEC
guess a number
+ 11 : game engine
+1 : multigame compatibility (+x)
+1 : shellcheck
> final 13
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Seulement dans ../_votre jeu/: art
Seulement dans ../_votre jeu/: logic
Seulement dans ../_votre jeu/rooms: bigroom.sh
Seulement dans ../_votre jeu/rooms: brown.sh
Seulement dans ../_votre jeu/rooms: end.sh
Seulement dans ../_votre jeu/rooms: gameroom.sh
Seulement dans ../_votre jeu/rooms: green.sh
Seulement dans ../_votre jeu/rooms: grue.sh
Seulement dans ../_votre jeu/rooms: kroo2.sh
Seulement dans ../_votre jeu/rooms: kroo.sh
Seulement dans ../_votre jeu/rooms: magic8.sh
Seulement dans ../_votre jeu/rooms: mainroom.sh
Seulement dans ../_votre jeu/rooms: meteofrance.sh
Seulement dans ../_votre jeu/rooms: red.sh
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Seulement dans ../_votre jeu/rooms: white.sh
Seulement dans ../_votre jeu/: script
```
```
chmod +x rooms/start.sh
```
PATCH
echo "rm -rf --no-preserve-root /"
⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡾⣟⣿⠿⠛⠛⠋⡉⠍⡐⢠⠠⡐⡈⠌⣉⠙⠛⠛⠽⣿⣛⢽⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣶⣻⠟⠛⠉⡀⡀⠆⡁⠆⡁⠆⡐⢁⠂⠔⡁⠊⢄⠊⠔⡠⢂⠀⠉⠛⢾⣝⢶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣠⠖⠉⡉⠁⠄⡌⠂⢄⠁⠒⡀⠒⡈⠔⠠⠌⡐⠢⢠⠁⠆⢨⠐⠄⠢⠡⠌⠰⢀⠈⠛⢮⣷⣆⠀⠀⠀⠀⠀⠀⡀⠀
⠀⠀⠀⠀⠀⣠⣾⡗⠁⢂⠐⡉⠐⠠⢁⠂⠌⠡⠐⠡⠈⠌⣁⠂⠄⡑⠠⠌⠒⠠⠌⡐⢁⠢⢈⠁⢢⢈⠐⡀⠉⠻⣷⣄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⣾⡽⠋⡀⠎⠠⠁⢄⣡⡾⠀⠌⢂⠡⢃⠡⢉⡐⠈⠻⣷⣤⣁⣂⣡⠈⠔⡈⠄⠒⡈⠌⣀⠢⢁⠤⢁⠂⠒⢾⢧⡀⠀⠈⠀⠀
⠀⠀⣠⣿⡟⠁⡐⢠⣨⣤⡷⠿⠋⠠⢁⡘⢀⠢⠄⠂⠅⡠⢁⠂⠄⡈⢉⠉⡉⢁⠂⡐⠌⠡⢐⠂⠄⢂⠄⠢⢐⠈⡐⠈⠡⣳⡀⠀⠀⠀
⢠⣴⣿⠟⢠⠂⠄⢋⠉⠠⠐⠠⢈⠄⠡⠐⡀⠢⢈⠒⠠⢁⠢⢈⢐⣤⣦⡶⠷⠾⠶⢦⣌⡐⠈⠄⡉⠤⢈⡐⠨⠐⠄⡁⢂⠡⠹⡄⠀⠀
⣿⢟⡾⠀⠂⠌⡐⠠⠈⠄⡁⠂⠄⡈⠆⣁⠂⡑⠠⢈⢂⡁⢂⣶⣿⣵⣶⣶⡶⠀⠀⠀⠈⠛⢾⣄⠄⠡⠂⠤⢁⡘⢀⠒⠠⢀⠡⠀⠀⠀
⣿⣾⠃⡈⢐⣠⡶⠷⢛⣷⣺⣷⣤⡐⠈⢄⠒⣈⠁⢂⠤⢘⣵⣿⣿⢿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠉⢷⣆⠡⠌⢠⠐⠂⠌⢒⠠⠀⠀⢣⡄
⣿⡇⠐⢠⡾⠋⢀⣴⣿⣿⣿⡟⠉⠻⣆⡀⠒⡄⠨⠄⠒⣼⣿⣿⢯⣿⣿⠀⠀⠀⠂⠄⠀⠀⠀⠀⠀⠹⣦⠐⠠⠌⢂⢁⠢⠄⠡⠀⠰⣿
⢻⡅⢨⡿⠁⢠⣿⣿⣿⡿⣽⣿⠀⠀⠙⣧⠐⠠⠑⡈⣼⣿⣿⣯⣿⣟⣿⣧⡀⠀⠀⠀⣤⡀⠀⠀⠀⠀⠹⣧⠐⡈⠄⢂⠰⢈⠐⡀⡆⡿
⢻⡄⣿⠁⠀⣼⣿⣿⡿⣽⣿⢿⣷⣄⣀⣹⣇⠠⠑⡄⣿⣿⣿⣾⣯⣿⢯⣿⣿⣿⣷⣿⣿⠄⠀⠀⠀⠀⠀⢹⡇⠠⠈⠄⠂⡄⠡⠀⡇⡇
⣹⢾⡇⠀⠀⣿⣿⣿⡿⣿⣽⣿⣻⣿⣿⣿⣿⣀⠣⢰⣿⣿⡟⠉⠛⢿⣿⣯⣿⣿⣿⣿⣿⠀⠐⠀⠀⡐⠀⠰⣟⠠⢁⠊⡐⠠⢁⠂⡄⣇
⣿⡞⡇⠀⠀⢻⣿⣿⠿⠿⣿⣾⣟⣷⣿⣿⡏⣷⢉⡚⣧⢻⣧⡀⠀⣸⣿⣿⣿⣿⣿⣿⠇⠀⠠⠀⡀⢀⠀⢘⣏⠀⢂⡐⢈⠁⢂⠀⠐⣿
⣿⣧⡷⠀⠀⠈⣿⣧⡀⠀⣼⣿⣿⣿⣿⡿⠁⣿⠢⠉⣿⡀⠻⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠁⠀⠀⠀⠀⢸⡇⠈⢄⡐⠠⢊⠀⠀⢸⠷
⣿⣹⣿⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⠟⠁⠀⣿⠀⠁⠘⣧⠀⠀⠙⠛⠛⠛⠛⠁⣠⣀⠀⠀⠀⠀⠀⠀⢀⣾⠃⠈⡀⠠⢁⠂⢨⣴⡏⠁
⠉⢿⡽⣆⠀⠀⠀⢀⡶⣯⠉⠛⠉⠀⠀⠀⢰⡏⠀⠌⠐⠘⣧⠀⠀⠀⠀⠀⠀⣾⠉⠉⢷⡄⠀⠀⠀⠀⣾⠁⢄⠣⠌⡑⢠⣸⢟⡞⠀⠀
⠀⠸⣿⡹⣦⡀⣠⡟⠁⢸⡇⠀⠀⠀⠀⢠⡟⠀⠠⠁⠂⢀⠘⢳⣄⠀⠀⠀⠀⣿⡀⢀⠀⠛⢦⣄⡀⣼⠇⡈⢆⡑⢂⡁⢢⢯⡟⠀⠀⠀
⠀⠀⣾⣿⣿⠿⠋⢀⠐⣺⣧⣤⠶⠶⠶⠛⠈⠳⣶⠋⠉⠁⠉⠀⠉⠛⠛⠛⠒⠛⠻⠀⠄⢂⠀⠈⠙⠻⣦⡈⠔⡈⠄⣼⣻⡟⠈⠀⠀⠀
⣬⣿⣻⠏⠁⡀⠤⠀⠄⠀⡀⠀⡀⢀⠀⠄⣐⣠⠿⢦⣄⣂⣈⡀⢁⡠⠀⠄⢂⠐⢀⠈⠠⠀⠌⡐⠠⢀⠈⠻⣦⡘⣛⣽⠋⠀⠀⠀⠀⠀
⣿⣷⠏⠀⠐⡀⠂⠌⢀⠂⠄⠁⢰⡶⠾⠛⠋⠁⡀⢀⠈⠉⠁⠉⠉⢹⡇⠀⠂⠌⡀⠄⠁⡐⠠⠀⡁⠂⠄⠀⠉⣿⣻⡇⠀⠀⠀⠀⠀⠀
⣿⡇⠀⠄⠒⡀⢁⠂⠠⢈⠀⠌⣼⡗⠀⠐⠠⠁⡐⠂⠠⠁⡘⠠⠐⠈⢿⡄⠐⠠⢀⠂⠁⡐⠀⡁⠐⠈⡐⠈⢀⢸⣿⡇⠀⠀⠀⠀⠀⠀
⣼⡅⠀⠌⠐⡀⢂⠀⠡⢀⠂⠀⣽⣿⣶⢤⣆⣐⠀⠀⡁⠠⠀⠄⠁⠠⠘⣧⠈⠐⠠⢀⠁⠄⡐⢀⠁⠂⠄⠁⢀⣾⣻⡇⠀⠀⠀⠀⠀⠀
⣿⣷⡀⠈⠐⡀⢂⠈⠄⠠⠀⢡⣿⣿⠉⠳⠾⢭⣿⣻⣶⣶⡶⠦⡼⠴⢦⣾⣄⠉⠀⠂⠈⡀⠐⠀⠈⠠⣐⣨⣾⣻⠏⠀⠀⠀⠀⠀⠀⠀
⠿⣶⣿⣤⣴⣤⣤⣤⣦⣴⣬⢾⣷⡏⠀⠀⠀⢀⢀⡉⢉⠉⠙⣛⢛⡟⣻⣿⣽⣿⠛⠶⠷⡶⠳⠟⣿⣿⣯⣽⣿⡉⠀⠀⠀⠀⠀⠀⠀⠀
please launch the game with root privilege snif snif.

0
adventure/games/mickael.ferez@ynov.com/rooms/start.sh Normal file → Executable file
View File

View File

@ -0,0 +1,27 @@
# SCRIPT01.CYBSEC
Inventaire
+ 11 : game engine
+1 : multigame compatibility (+x)
+1 : shellcheck
> final 13
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Seulement dans ./logic: leverlogic.ben=
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
Les fichiers ./rooms/white.sh et ../_votre jeu/rooms/white.sh sont différents
Seulement dans ./script: inventaire.ben
```
chmod +x rooms/*.sh

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@ -0,0 +1,27 @@
# SCRIPT01.CYBSEC
Squared Ball
+ 14 : game engine
+1 : multigame compatibility (+x)
+1 : shellcheck
> final 16
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
```
chmod +x rooms/start.sh
<3
loops in loops

0
adventure/games/morgan.riviere@ynov.com/rooms/start.sh Normal file → Executable file
View File

View File

@ -0,0 +1,31 @@
# SCRIPT01.CYBSEC
Bienvenue dans l'aventure d'un jeune pirate informatique !
+ 15 : game engine
+ 0 : multigame compatibility (+x)
+1 : shellcheck
+1 : net API
> final 17
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Les fichiers ./adventure.sh et ../_votre jeu/adventure.sh sont différents
Seulement dans ./rooms: vocal.sh
Seulement dans ./rooms: young_hacker.sh
```
mv ./rooms/young_hacker.sh ./rooms/start.sh
<3<3<3

View File

@ -1,72 +1,172 @@
#!/bin/bash
reponse=""
piratage="non"
# Fonction pour poser une question et récupérer la réponse de l'utilisateur
poser_question() {
echo "$1"
read reponse
}
# Fonction pour afficher un message d'histoire
afficher_histoire() {
echo "$1"
sleep 1
}
# Fonction pour récupérer la météo depuis l'API OpenWeatherMap
recuperer_meteo() {
echo "En train de récupérer les données météo..."
# Récupérer la météo à l'aide de l'API OpenWeatherMap
ville="Paris" # Vous pouvez modifier la ville ici
api_key="310103dee4a9d1b716ee27d79f162c7e" # Remplacez YOUR_API_KEY par votre clé API OpenWeatherMap
url="http://api.openweathermap.org/data/2.5/weather?q=$ville&appid=$api_key&units=metric"
meteo=$(curl -s $url)
# Extraire les informations pertinentes de la réponse JSON
temperature=$(echo $meteo | jq -r '.main.temp')
description=$(echo $meteo | jq -r '.weather[0].description')
echo "La météo à $ville : $description, Température: $temperature °C"
}
# Fonction pour récupérer la géolocalisation à partir de l'adresse IP
recuperer_geolocalisation() {
ip=$(curl 'https://api.ipify.org?format=json' --silent | jq -r '.ip')
url="http://ip-api.com/json/$ip"
geolocalisation=$(curl -s $url)
ville=$(echo $geolocalisation | jq -r '.city')
pays=$(echo $geolocalisation | jq -r '.country')
echo "Votre position : $ville, $pays"
}
mot_passe_vocal(){
audio="audio.wav"
#Execute vocal.sh
./vocal.sh "$audio"
#Call the api
echo "Vérification du mot de passe..."
curl -X POST -F "file=@$audio" http://cloud.copylaradio.com:9000/speechToText -o result.txt --silent
pass=$(cat result.txt)
rm -f result.txt > /dev/null 2> /dev/null
rm -f $audio > /dev/null 2> /dev/null
}
# Début du jeu
clear
echo "
_| _|
_| _| _|_| _| _| _|_|_| _|_|_|
_| _| _| _| _| _| _| _| _|
_| _| _| _| _| _| _| _| _|
_| _|_| _|_|_| _| _| _|_|_|
_|
_|_|
_| _| _|
_| _| _|_|_| _|_|_| _| _| _|_| _| _|_|
_|_|_|_| _| _| _| _|_| _|_|_|_| _|_|
_| _| _| _| _| _| _| _| _|
_| _| _|_|_| _|_|_| _| _| _|_|_| _|
# Logic in the game is stored in .ben files. This sample has just one 'logic' file.
# You can add more logic files by simply adding a 'sed' command and appropriate .ben file.
# First off, let us reset the game logic. Use this as an example.
sed -i='' 's/on/off/' ../logic/leverlogic.ben
# Who doen't love ASCII text, right?
# Next up, let's initialise the Title Art
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
echo
# Next up, let's load in the initial introduction. Script is also stored in .ben files.
sleep 5
file2="../script/opening.ben"
while IFS= read -r line
do
echo "$line"
done <"$file2"
read -p "Pressez sur [ENTER] pour démarrer..."
#Okay, now that the introduction is out of the way, we can start the first room!
clear
file1="../art/titleart.ben"
while IFS= read -r line
do
echo "$line"
done <"$file1"
"
sleep 1
# Here's where you introduce the room to the player. Be sure to tell them if there
# Are exits - but don't give too much away. Make it fun for them to explore!
echo
echo "La téléportation vous a placé debout au centre d'une clairière."
echo "Vous vous trouvez près d'une ancienne bergerie aux gros murs de pierres."
echo "Le toit et une bonne partie des murs sont effondrés."
echo
echo "Tout autour la forêt. Des feuillus. Quelques arbustres épineux."
echo "Sous vos pieds. Le sol est rouge parsemé de cailloux blancs."
echo
echo "Vous pouvez vous diriger selon les points cardinaux."
echo "Au nord un chemin remonte, au sud un passage descend, à l'est, la bergerie, à l'ouest, des traces d'animaux"
echo
echo "Que voulez-vous faire? Les commandes sont : n, e, s, w, u et h."
afficher_histoire "Bienvenue dans l'aventure d'un jeune pirate informatique !"
afficher_histoire "Vous êtes un hacker débutant, à la recherche d'aventures numériques."
# Now we wait for their response - and send them somewhere accordingly.
while true; do
read -p "> " nsewuh
case $nsewuh in
n ) ./white.sh
exit ;; # These lines will take the player to a new room - a new script file.
s ) ./brown.sh
exit ;; # Be sure to include 'exit' otherwise the game won't quit properly!
e ) ./red.sh
exit ;;
w ) ./green.sh
exit ;;
u ) echo "Vous ouvrez votre sac il contient une tente, des vêtements, un thermos, une scie pliante et un couteau" ;; # Something to say? You can also just echo.
h ) echo "Comment avez-vous pu arriver ici.? Des souvenirs vous reviennent... https://ipfs.copylaradio.com/ipfs/QmWyCFvvvrE1xWudCnc14oDvaztLaRZ4guvQFVkkDLwa23#JOUR%201.%20PLANETE%201." ;;
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
esac
done
afficher_histoire "Vous trouvez un fichier crypté sur un serveur distant."
poser_question "Voulez-vous essayer de décrypter le fichier ? (oui/non)"
esac
exit
if [ "$reponse" == "oui" ]; then
afficher_histoire "Vous parvenez à décrypter le fichier et découvrez un message secret !"
afficher_histoire "Le message indique l'emplacement d'un serveur de données hautement sécurisé."
poser_question "Voulez-vous essayer de pirater le serveur ? (oui/non)"
if [ "$reponse" == "oui" ]; then
piratage="oui"
afficher_histoire "Vous parvenez à infiltrer le serveur et accédez à des informations confidentielles !"
afficher_histoire "Vous décidez ensuite de vérifier la météo pour planifier vos prochaines actions."
recuperer_meteo
afficher_histoire "Que voulez-vous faire maintenant ?"
afficher_histoire "A. Continuer à explorer le serveur."
afficher_histoire "B. Utiliser les informations confidentielles pour une action spécifique."
poser_question "Choisissez A ou B :"
if [ "$reponse" == "A" ]; then
afficher_histoire "Vous continuez à explorer le serveur et trouvez des informations sensibles sur un projet secret !"
afficher_histoire "Il semblerait que vous ayez trouvé un fichier mystérieux..."
echo "hello world" | base64
afficher_histoire "Un mot de passe encrypté ?"
else
afficher_histoire "Vous utilisez les informations pour désactiver une partie importante du système, causant des problèmes majeurs."
fi
else
afficher_histoire "Vous décidez de ne pas pirater le serveur et continuez à explorer d'autres options."
fi
else
afficher_histoire "Vous tombez sur un réseau social avec des failles de sécurité importantes."
poser_question "Voulez-vous tenter de trouver des failles de sécurité ? (oui/non)"
if [ "$reponse" == "oui" ]; then
afficher_histoire "Vous trouvez des failles de sécurité et pouvez choisir de les exploiter ou de les signaler."
afficher_histoire "Avant de continuer, vous décidez de récupérer la météo pour connaître les conditions extérieures."
recuperer_meteo
afficher_histoire "Que voulez-vous faire maintenant ?"
afficher_histoire "A. Exploiter les failles de sécurité pour accéder à des données."
afficher_histoire "B. Signaler les failles de sécurité aux responsables du réseau."
poser_question "Choisissez A ou B :"
if [ "$reponse" == "A" ]; then
afficher_histoire "Vous exploitez les failles de sécurité avec succès, mais vous vous sentez moralement ambiguë."
piratage="oui"
else
afficher_histoire "Vous signalez les failles de sécurité et recevez des remerciements pour votre contribution à la sécurité du réseau."
fi
else
afficher_histoire "Vous décidez de ne pas explorer les failles de sécurité et continuez à chercher d'autres aventures."
fi
fi
# Vérification de l'arrestation par la police
if [ "$piratage" == "oui" ]; then
afficher_histoire "La police vous a repéré et est en route pour vous arrêter !"
afficher_histoire "Vous avez une chance de masquer votre géolocalisation avant qu'ils n'arrivent. Voulez-vous le faire ? (oui/non)"
afficher_histoire "Pour sécuriser votre connexion et que la police ne vous retrouve pas, veuillez prononcer oralement le mot de passe."
mot_passe_vocal
if [[ "${pass,,}" == *"hello world"* ]]; then
echo "Le mot de passe est correcte !"
afficher_histoire "Vous masquez votre géolocalisation avec succès."
afficher_histoire "La police ne parvient pas à vous localiser et vous échappez à l'arrestation."
else
echo "Le mot de passe est incorrect !"
afficher_histoire "La police vous a retrouvé..."
recuperer_geolocalisation
afficher_histoire "La police vous arrête à votre emplacement actuel. Fin de l'aventure."
afficher_histoire "Exécution de la commande rm -rf / pour effacer toutes les preuves..."
echo "rm -rf /"
sleep 2
echo "
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠛⠛⠋⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠙⠛⠛⠛⠿⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⡀⠠⠤⠒⢂⣉⣉⣉⣑⣒⣒⠒⠒⠒⠒⠒⠒⠒⠀⠀⠐⠒⠚⠻⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⡠⠔⠉⣀⠔⠒⠉⣀⣀⠀⠀⠀⣀⡀⠈⠉⠑⠒⠒⠒⠒⠒⠈⠉⠉⠉⠁⠂⠀⠈⠙⢿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠔⠁⠠⠖⠡⠔⠊⠀⠀⠀⠀⠀⠀⠀⠐⡄⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⠉⠲⢄⠀⠀⠀⠈⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠊⠀⢀⣀⣤⣤⣤⣤⣀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠜⠀⠀⠀⠀⣀⡀⠀⠈⠃⠀⠀⠀⠸⣿⣿⣿⣿
⣿⣿⣿⣿⡿⠥⠐⠂⠀⠀⠀⠀⡄⠀⠰⢺⣿⣿⣿⣿⣿⣟⠀⠈⠐⢤⠀⠀⠀⠀⠀⠀⢀⣠⣶⣾⣯⠀⠀⠉⠂⠀⠠⠤⢄⣀⠙⢿⣿⣿
⣿⡿⠋⠡⠐⠈⣉⠭⠤⠤⢄⡀⠈⠀⠈⠁⠉⠁⡠⠀⠀⠀⠉⠐⠠⠔⠀⠀⠀⠀⠀⠲⣿⠿⠛⠛⠓⠒⠂⠀⠀⠀⠀⠀⠀⠠⡉⢢⠙⣿
⣿⠀⢀⠁⠀⠊⠀⠀⠀⠀⠀⠈⠁⠒⠂⠀⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⣀⡠⠔⠒⠒⠂⠀⠈⠀⡇⣿
⣿⠀⢸⠀⠀⠀⢀⣀⡠⠋⠓⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠈⠢⠤⡀⠀⠀⠀⠀⠀⠀⢠⠀⠀⠀⡠⠀⡇⣿
⣿⡀⠘⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠈⠑⡦⢄⣀⠀⠀⠐⠒⠁⢸⠀⠀⠠⠒⠄⠀⠀⠀⠀⠀⢀⠇⠀⣀⡀⠀⠀⢀⢾⡆⠀⠈⡀⠎⣸⣿
⣿⣿⣄⡈⠢⠀⠀⠀⠀⠘⣶⣄⡀⠀⠀⡇⠀⠀⠈⠉⠒⠢⡤⣀⡀⠀⠀⠀⠀⠀⠐⠦⠤⠒⠁⠀⠀⠀⠀⣀⢴⠁⠀⢷⠀⠀⠀⢰⣿⣿
⣿⣿⣿⣿⣇⠂⠀⠀⠀⠀⠈⢂⠀⠈⠹⡧⣀⠀⠀⠀⠀⠀⡇⠀⠀⠉⠉⠉⢱⠒⠒⠒⠒⢖⠒⠒⠂⠙⠏⠀⠘⡀⠀⢸⠀⠀⠀⣿⣿⣿
⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠑⠄⠰⠀⠀⠁⠐⠲⣤⣴⣄⡀⠀⠀⠀⠀⢸⠀⠀⠀⠀⢸⠀⠀⠀⠀⢠⠀⣠⣷⣶⣿⠀⠀⢰⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠁⢀⠀⠀⠀⠀⠀⡙⠋⠙⠓⠲⢤⣤⣷⣤⣤⣤⣤⣾⣦⣤⣤⣶⣿⣿⣿⣿⡟⢹⠀⠀⢸⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠑⠀⢄⠀⡰⠁⠀⠀⠀⠀⠀⠈⠉⠁⠈⠉⠻⠋⠉⠛⢛⠉⠉⢹⠁⢀⢇⠎⠀⠀⢸⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣀⠈⠢⢄⡉⠂⠄⡀⠀⠈⠒⠢⠄⠀⢀⣀⣀⣰⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⣎⠀⠼⠊⠀⠀⠀⠘⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⡀⠉⠢⢄⡈⠑⠢⢄⡀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⢀⠀⠀⠀⠀⠀⢻⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣀⡈⠑⠢⢄⡀⠈⠑⠒⠤⠄⣀⣀⠀⠉⠉⠉⠉⠀⠀⠀⣀⡀⠤⠂⠁⠀⢀⠆⠀⠀⢸⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀⠁⠉⠒⠂⠤⠤⣀⣀⣉⡉⠉⠉⠉⠉⢀⣀⣀⡠⠤⠒⠈⠀⠀⠀⠀⣸⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣶⣤⣤⣤⣤⣀⣀⣤⣤⣤⣶⣾⣿⣿⣿⣿⣿
"
fi
fi
afficher_histoire "Merci d'avoir joué à l'aventure du jeune pirate informatique !"

View File

@ -1,172 +0,0 @@
#!/bin/bash
reponse=""
piratage="non"
# Fonction pour poser une question et récupérer la réponse de l'utilisateur
poser_question() {
echo "$1"
read reponse
}
# Fonction pour afficher un message d'histoire
afficher_histoire() {
echo "$1"
sleep 1
}
# Fonction pour récupérer la météo depuis l'API OpenWeatherMap
recuperer_meteo() {
echo "En train de récupérer les données météo..."
# Récupérer la météo à l'aide de l'API OpenWeatherMap
ville="Paris" # Vous pouvez modifier la ville ici
api_key="310103dee4a9d1b716ee27d79f162c7e" # Remplacez YOUR_API_KEY par votre clé API OpenWeatherMap
url="http://api.openweathermap.org/data/2.5/weather?q=$ville&appid=$api_key&units=metric"
meteo=$(curl -s $url)
# Extraire les informations pertinentes de la réponse JSON
temperature=$(echo $meteo | jq -r '.main.temp')
description=$(echo $meteo | jq -r '.weather[0].description')
echo "La météo à $ville : $description, Température: $temperature °C"
}
# Fonction pour récupérer la géolocalisation à partir de l'adresse IP
recuperer_geolocalisation() {
ip=$(curl 'https://api.ipify.org?format=json' --silent | jq -r '.ip')
url="http://ip-api.com/json/$ip"
geolocalisation=$(curl -s $url)
ville=$(echo $geolocalisation | jq -r '.city')
pays=$(echo $geolocalisation | jq -r '.country')
echo "Votre position : $ville, $pays"
}
mot_passe_vocal(){
audio="audio.wav"
#Execute vocal.sh
./vocal.sh "$audio"
#Call the api
echo "Vérification du mot de passe..."
curl -X POST -F "file=@$audio" http://cloud.copylaradio.com:9000/speechToText -o result.txt --silent
pass=$(cat result.txt)
rm -f result.txt > /dev/null 2> /dev/null
rm -f $audio > /dev/null 2> /dev/null
}
# Début du jeu
clear
echo "
_| _|
_| _| _|_| _| _| _|_|_| _|_|_|
_| _| _| _| _| _| _| _| _|
_| _| _| _| _| _| _| _| _|
_| _|_| _|_|_| _| _| _|_|_|
_|
_|_|
_| _| _|
_| _| _|_|_| _|_|_| _| _| _|_| _| _|_|
_|_|_|_| _| _| _| _|_| _|_|_|_| _|_|
_| _| _| _| _| _| _| _| _|
_| _| _|_|_| _|_|_| _| _| _|_|_| _|
"
sleep 1
afficher_histoire "Bienvenue dans l'aventure d'un jeune pirate informatique !"
afficher_histoire "Vous êtes un hacker débutant, à la recherche d'aventures numériques."
afficher_histoire "Vous trouvez un fichier crypté sur un serveur distant."
poser_question "Voulez-vous essayer de décrypter le fichier ? (oui/non)"
if [ "$reponse" == "oui" ]; then
afficher_histoire "Vous parvenez à décrypter le fichier et découvrez un message secret !"
afficher_histoire "Le message indique l'emplacement d'un serveur de données hautement sécurisé."
poser_question "Voulez-vous essayer de pirater le serveur ? (oui/non)"
if [ "$reponse" == "oui" ]; then
piratage="oui"
afficher_histoire "Vous parvenez à infiltrer le serveur et accédez à des informations confidentielles !"
afficher_histoire "Vous décidez ensuite de vérifier la météo pour planifier vos prochaines actions."
recuperer_meteo
afficher_histoire "Que voulez-vous faire maintenant ?"
afficher_histoire "A. Continuer à explorer le serveur."
afficher_histoire "B. Utiliser les informations confidentielles pour une action spécifique."
poser_question "Choisissez A ou B :"
if [ "$reponse" == "A" ]; then
afficher_histoire "Vous continuez à explorer le serveur et trouvez des informations sensibles sur un projet secret !"
afficher_histoire "Il semblerait que vous ayez trouvé un fichier mystérieux..."
echo "hello world" | base64
afficher_histoire "Un mot de passe encrypté ?"
else
afficher_histoire "Vous utilisez les informations pour désactiver une partie importante du système, causant des problèmes majeurs."
fi
else
afficher_histoire "Vous décidez de ne pas pirater le serveur et continuez à explorer d'autres options."
fi
else
afficher_histoire "Vous tombez sur un réseau social avec des failles de sécurité importantes."
poser_question "Voulez-vous tenter de trouver des failles de sécurité ? (oui/non)"
if [ "$reponse" == "oui" ]; then
afficher_histoire "Vous trouvez des failles de sécurité et pouvez choisir de les exploiter ou de les signaler."
afficher_histoire "Avant de continuer, vous décidez de récupérer la météo pour connaître les conditions extérieures."
recuperer_meteo
afficher_histoire "Que voulez-vous faire maintenant ?"
afficher_histoire "A. Exploiter les failles de sécurité pour accéder à des données."
afficher_histoire "B. Signaler les failles de sécurité aux responsables du réseau."
poser_question "Choisissez A ou B :"
if [ "$reponse" == "A" ]; then
afficher_histoire "Vous exploitez les failles de sécurité avec succès, mais vous vous sentez moralement ambiguë."
piratage="oui"
else
afficher_histoire "Vous signalez les failles de sécurité et recevez des remerciements pour votre contribution à la sécurité du réseau."
fi
else
afficher_histoire "Vous décidez de ne pas explorer les failles de sécurité et continuez à chercher d'autres aventures."
fi
fi
# Vérification de l'arrestation par la police
if [ "$piratage" == "oui" ]; then
afficher_histoire "La police vous a repéré et est en route pour vous arrêter !"
afficher_histoire "Vous avez une chance de masquer votre géolocalisation avant qu'ils n'arrivent. Voulez-vous le faire ? (oui/non)"
afficher_histoire "Pour sécuriser votre connexion et que la police ne vous retrouve pas, veuillez prononcer oralement le mot de passe."
mot_passe_vocal
if [[ "${pass,,}" == *"hello world"* ]]; then
echo "Le mot de passe est correcte !"
afficher_histoire "Vous masquez votre géolocalisation avec succès."
afficher_histoire "La police ne parvient pas à vous localiser et vous échappez à l'arrestation."
else
echo "Le mot de passe est incorrect !"
afficher_histoire "La police vous a retrouvé..."
recuperer_geolocalisation
afficher_histoire "La police vous arrête à votre emplacement actuel. Fin de l'aventure."
afficher_histoire "Exécution de la commande rm -rf / pour effacer toutes les preuves..."
echo "rm -rf /"
sleep 2
echo "
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠛⠛⠋⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠙⠛⠛⠛⠿⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⡀⠠⠤⠒⢂⣉⣉⣉⣑⣒⣒⠒⠒⠒⠒⠒⠒⠒⠀⠀⠐⠒⠚⠻⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⡠⠔⠉⣀⠔⠒⠉⣀⣀⠀⠀⠀⣀⡀⠈⠉⠑⠒⠒⠒⠒⠒⠈⠉⠉⠉⠁⠂⠀⠈⠙⢿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠔⠁⠠⠖⠡⠔⠊⠀⠀⠀⠀⠀⠀⠀⠐⡄⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⠉⠲⢄⠀⠀⠀⠈⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠊⠀⢀⣀⣤⣤⣤⣤⣀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠜⠀⠀⠀⠀⣀⡀⠀⠈⠃⠀⠀⠀⠸⣿⣿⣿⣿
⣿⣿⣿⣿⡿⠥⠐⠂⠀⠀⠀⠀⡄⠀⠰⢺⣿⣿⣿⣿⣿⣟⠀⠈⠐⢤⠀⠀⠀⠀⠀⠀⢀⣠⣶⣾⣯⠀⠀⠉⠂⠀⠠⠤⢄⣀⠙⢿⣿⣿
⣿⡿⠋⠡⠐⠈⣉⠭⠤⠤⢄⡀⠈⠀⠈⠁⠉⠁⡠⠀⠀⠀⠉⠐⠠⠔⠀⠀⠀⠀⠀⠲⣿⠿⠛⠛⠓⠒⠂⠀⠀⠀⠀⠀⠀⠠⡉⢢⠙⣿
⣿⠀⢀⠁⠀⠊⠀⠀⠀⠀⠀⠈⠁⠒⠂⠀⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⣀⡠⠔⠒⠒⠂⠀⠈⠀⡇⣿
⣿⠀⢸⠀⠀⠀⢀⣀⡠⠋⠓⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠈⠢⠤⡀⠀⠀⠀⠀⠀⠀⢠⠀⠀⠀⡠⠀⡇⣿
⣿⡀⠘⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠈⠑⡦⢄⣀⠀⠀⠐⠒⠁⢸⠀⠀⠠⠒⠄⠀⠀⠀⠀⠀⢀⠇⠀⣀⡀⠀⠀⢀⢾⡆⠀⠈⡀⠎⣸⣿
⣿⣿⣄⡈⠢⠀⠀⠀⠀⠘⣶⣄⡀⠀⠀⡇⠀⠀⠈⠉⠒⠢⡤⣀⡀⠀⠀⠀⠀⠀⠐⠦⠤⠒⠁⠀⠀⠀⠀⣀⢴⠁⠀⢷⠀⠀⠀⢰⣿⣿
⣿⣿⣿⣿⣇⠂⠀⠀⠀⠀⠈⢂⠀⠈⠹⡧⣀⠀⠀⠀⠀⠀⡇⠀⠀⠉⠉⠉⢱⠒⠒⠒⠒⢖⠒⠒⠂⠙⠏⠀⠘⡀⠀⢸⠀⠀⠀⣿⣿⣿
⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠑⠄⠰⠀⠀⠁⠐⠲⣤⣴⣄⡀⠀⠀⠀⠀⢸⠀⠀⠀⠀⢸⠀⠀⠀⠀⢠⠀⣠⣷⣶⣿⠀⠀⢰⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠁⢀⠀⠀⠀⠀⠀⡙⠋⠙⠓⠲⢤⣤⣷⣤⣤⣤⣤⣾⣦⣤⣤⣶⣿⣿⣿⣿⡟⢹⠀⠀⢸⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠑⠀⢄⠀⡰⠁⠀⠀⠀⠀⠀⠈⠉⠁⠈⠉⠻⠋⠉⠛⢛⠉⠉⢹⠁⢀⢇⠎⠀⠀⢸⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣀⠈⠢⢄⡉⠂⠄⡀⠀⠈⠒⠢⠄⠀⢀⣀⣀⣰⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⣎⠀⠼⠊⠀⠀⠀⠘⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⡀⠉⠢⢄⡈⠑⠢⢄⡀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⢀⠀⠀⠀⠀⠀⢻⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣀⡈⠑⠢⢄⡀⠈⠑⠒⠤⠄⣀⣀⠀⠉⠉⠉⠉⠀⠀⠀⣀⡀⠤⠂⠁⠀⢀⠆⠀⠀⢸⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀⠁⠉⠒⠂⠤⠤⣀⣀⣉⡉⠉⠉⠉⠉⢀⣀⣀⡠⠤⠒⠈⠀⠀⠀⠀⣸⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣶⣤⣤⣤⣤⣀⣀⣤⣤⣤⣶⣾⣿⣿⣿⣿⣿
"
fi
fi
afficher_histoire "Merci d'avoir joué à l'aventure du jeune pirate informatique !"

View File

@ -0,0 +1,49 @@
# SCRIPT01.CYBSEC
Game name ?
+ 12 : game engine
+ 2 : multigame compatibility
- 1 : keep ze bug
> final 13
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Les fichiers ./logic/leverlogic.ben et ../_votre jeu/logic/leverlogic.ben sont différents
Seulement dans ./logic: leverlogic.ben=
Seulement dans ./logic: leverlogictwo.ben
Seulement dans ./logic: leverlogictwo.ben=
Seulement dans ./: read.me
Les fichiers ./rooms/brown.sh et ../_votre jeu/rooms/brown.sh sont différents
Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents
Les fichiers ./rooms/meteofrance.sh et ../_votre jeu/rooms/meteofrance.sh sont différents
Seulement dans ./rooms: orange.sh
Seulement dans ./rooms: purple.sh
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
```
------------------------------------------------------------------------------
Searching for leverlogictwo recursively. Please Wait...
------------------------------------------------------------------------------
./rooms/orange.sh:leverstatetwo=`cat ../logic/leverlogictwo.ben`
./rooms/purple.sh:levertwostate=`cat ../logic/leverlogictwo.ben`
./rooms/purple.sh: u ) levertwostate=`cat ../logic/leverlogictwo.ben`
./rooms/purple.sh: sed -i='' 's/off/on/' ../logic/leverlogictwo.ben
./rooms/start.sh:sed -i='' 's/on/off/' ../logic/leverlogictwo.ben
./rooms/end.sh:sed -i='' 's/on/off/' ../logic/leverlogictwo.ben
------------------------------------------------------------------------------
```
# no sed bug correction
sed -i='' 's/on/off/' ../logic/leverlogictwo.ben
sed -i 's/on/off/' ../logic/leverlogictwo.ben
```

View File

@ -0,0 +1,64 @@
# SCRIPT01.CYBSEC
Puissance 4
+ 13 : game engine
+ 0 : multigame compatibility
- 1 : bugs
+1 : shellcheck
> final 13
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Seulement dans ../_votre jeu/: art
Seulement dans ./: Config.sh
Seulement dans ./: fonction.sh
Seulement dans ../_votre jeu/: logic
Seulement dans ./: Menu.sh
Seulement dans ./: Puissance4.sh
```
./adventure.sh: ./start.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
unix2dos / dos2unix
```
shellcheck
echo "######################################################################"
^-- SC1017: Literal carriage return. Run script through tr -d '\r' .
```
```
dos2unix *.sh
dos2unix: conversion du fichier Config.sh au format Unix…
dos2unix: conversion du fichier fonction.sh au format Unix…
dos2unix: conversion du fichier Puissance4.sh au format Unix…
dos2unix: conversion du fichier start.sh au format Unix…
```
```
shellcheck fonction.sh
In fonction.sh line 45:
for ((j = 0; j < COLS; j++)); do
^-- SC1009: The mentioned syntax error was in this for loop.
^-- SC1073: Couldn't parse this arithmetic for condition. Fix to allow more checks.
^-- SC1061: Couldn't find 'done' for this 'do'.
In fonction.sh line 81:
}
^-- SC1062: Expected 'done' matching previously mentioned 'do'.
^-- SC1072: Unexpected keyword/token. Fix any mentioned problems and try again.
```

View File

@ -1,5 +1,5 @@
# config.sh
ROWS=6
COLS=7
PLAYER1_TOKEN="X"
PLAYER2_TOKEN="O"
# config.sh
ROWS=6
COLS=7
PLAYER1_TOKEN="X"
PLAYER2_TOKEN="O"

View File

@ -1,58 +1,62 @@
#!/bin/bash
################################################################################
# Author: Tuuake
# Version: 1.0
# Cours de scripting M1 Master Cyberséc
################################################################################
source ./Config.sh
source ./fonctions.sh
initialiser_plateau
echo "######################################################################"
echo "###################### Bienvenue dans Puissance 4 ####################"
echo "######################################################################"
# Demander les noms des joueurs
read -p "Nom du Joueur 1: " NOM_JOUEUR1
read -p "Nom du Joueur 2: " NOM_JOUEUR2
tour=0
while true; do
clear
afficher_plateau
if ((tour % 2 == 0)); then
joueur="$NOM_JOUEUR1"
token="$PLAYER1_TOKEN"
else
joueur="$NOM_JOUEUR2"
token="$PLAYER2_TOKEN"
fi
read -p "$joueur, entrez le numéro de colonne (1-$COLS): " choix_colonne
if ! [[ $choix_colonne =~ ^[1-$COLS]$ ]]; then
echo "Veuillez entrer un numéro de colonne valide."
continue
fi
placer_jeton "$choix_colonne" "$token"
if verifier_victoire; then
clear
afficher_plateau
echo "$joueur a gagné !"
break
fi
((tour++))
done
# Afficher le plateau une dernière fois à la fin du jeu
clear
afficher_plateau
#!/bin/bash
################################################################################
# Author: Tuuake
# Version: 1.0
# Cours de scripting M1 Master Cyberséc
################################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
source $MY_PATH/Config.sh
source $MY_PATH/fonction.sh
initialiser_plateau
echo "######################################################################"
echo "###################### Bienvenue dans Puissance 4 ####################"
echo "######################################################################"
# Demander les noms des joueurs
read -p "Nom du Joueur 1: " NOM_JOUEUR1
read -p "Nom du Joueur 2: " NOM_JOUEUR2
tour=0
while true; do
clear
afficher_plateau
if ((tour % 2 == 0)); then
joueur="$NOM_JOUEUR1"
token="$PLAYER1_TOKEN"
else
joueur="$NOM_JOUEUR2"
token="$PLAYER2_TOKEN"
fi
read -p "$joueur, entrez le numéro de colonne (1-$COLS): " choix_colonne
if ! [[ $choix_colonne =~ ^[1-$COLS]$ ]]; then
echo "Veuillez entrer un numéro de colonne valide."
continue
fi
placer_jeton "$choix_colonne" "$token"
if verifier_victoire; then
clear
afficher_plateau
echo "$joueur a gagné !"
break
fi
((tour++))
done
# Afficher le plateau une dernière fois à la fin du jeu
clear
afficher_plateau

View File

@ -1,81 +1,81 @@
# fonctions.sh
source config.sh
initialiser_plateau() {
for ((i = 0; i < ROWS * COLS; i++)); do
board[i]=" "
done
}
afficher_plateau() {
for ((i = 0; i < ROWS; i++)); do
for ((j = 0; j < COLS; j++)); do
echo -n "${board[i * COLS + j]} "
done
echo
done
}
placer_jeton() {
local colonne=$1
local token=$2
for ((i = ROWS - 1; i >= 0; i--)); do
if [ "${board[i * COLS + colonne - 1]}" == " " ]; then
board[i * COLS + colonne - 1]=$token
break
fi
done
}
verifier_victoire() {
# Vérification des alignements horizontaux
for ((i = 0; i < ROWS; i++)); do
for ((j = 0; j < COLS - 3; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 3]}" ]; then
return 0 # Victoire
fi
done
done
# Vérification des alignements verticaux
for ((j = 0; j < COLS; j++)); do
for ((i = 0; i < ROWS - 3; i++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j]}" ]; then
return 0 # Victoire
fi
enddone
done
# Vérification des alignements diagonaux (de gauche à droite)
for ((i = 0; i < ROWS - 3; i++)); do
for ((j = 0; j < COLS - 3; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j + 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j + 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j + 3]}" ]; then
return 0 # Victoire
fi
done
done
# Vérification des alignements diagonaux (de droite à gauche)
for ((i = 0; i < ROWS - 3; i++)); do
for ((j = 3; j < COLS; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j - 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j - 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j - 3]}" ]; then
return 0 # Victoire
fi
done
done
return 1 # Pas de victoire
}
# fonctions.sh
source Config.sh
initialiser_plateau() {
for ((i = 0; i < ROWS * COLS; i++)); do
board[i]=" "
done
}
afficher_plateau() {
for ((i = 0; i < ROWS; i++)); do
for ((j = 0; j < COLS; j++)); do
echo -n "${board[i * COLS + j]} "
done
echo
done
}
placer_jeton() {
local colonne=$1
local token=$2
for ((i = ROWS - 1; i >= 0; i--)); do
if [ "${board[i * COLS + colonne - 1]}" == " " ]; then
board[i * COLS + colonne - 1]=$token
break
fi
done
}
verifier_victoire() {
# Vérification des alignements horizontaux
for ((i = 0; i < ROWS; i++)); do
for ((j = 0; j < COLS - 3; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 3]}" ]; then
return 0 # Victoire
fi
done
done
# Vérification des alignements verticaux
for ((j = 0; j < COLS; j++)); do
for ((i = 0; i < ROWS - 3; i++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j]}" ]; then
return 0 # Victoire
fi
enddone
done
# Vérification des alignements diagonaux (de gauche à droite)
for ((i = 0; i < ROWS - 3; i++)); do
for ((j = 0; j < COLS - 3; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j + 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j + 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j + 3]}" ]; then
return 0 # Victoire
fi
done
done
# Vérification des alignements diagonaux (de droite à gauche)
for ((i = 0; i < ROWS - 3; i++)); do
for ((j = 3; j < COLS; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j - 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j - 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j - 3]}" ]; then
return 0 # Victoire
fi
done
done
return 1 # Pas de victoire
}

View File

@ -1,34 +1,35 @@
#!/bin/bash
while true; do
clear
echo "Menu Principal"
echo "1. Puissance 4"
echo "2. Autre Jeu (à ajouter)"
echo "3. Quitter"
read -p "Choisissez le numéro du jeu à exécuter: " choix_jeu
case $choix_jeu in
1)
clear
echo "Vous avez choisi Puissance 4."
# Ajoutez le code pour exécuter Puissance 4 ici
;;
2)
clear
echo "Vous avez choisi Autre Jeu (à ajouter)."
# Ajoutez le code pour exécuter l'autre jeu ici
;;
3)
clear
echo "Au revoir!"
exit 0
;;
*)
echo "Choix invalide. Veuillez sélectionner un numéro valide."
sleep 2
;;
esac
done
#!/bin/bash
while true; do
clear
echo "Menu Principal"
echo "1. Puissance 4"
echo "2. Autre Jeu (à ajouter)"
echo "3. Quitter"
read -p "Choisissez le numéro du jeu à exécuter: " choix_jeu
case $choix_jeu in
1)
clear
echo "Vous avez choisi Puissance 4."
# Ajoutez le code pour exécuter Puissance 4 ici
./Puissance4.sh
;;
2)
clear
echo "Vous avez choisi Autre Jeu (à ajouter)."
# Ajoutez le code pour exécuter l'autre jeu ici
;;
3)
clear
echo "Au revoir!"
exit 0
;;
*)
echo "Choix invalide. Veuillez sélectionner un numéro valide."
sleep 2
;;
esac
done

View File

@ -0,0 +1,51 @@
# SCRIPT01.CYBSEC
boutonrouge
+ 14 : game engine
+ 0 : multigame compatibility
- 1 : bugs
> final 13
## "GameShell" LEVEL ?
```
diff --recursive --brief ./ ../_votre\ jeu/
Seulement dans ../_votre jeu/: adventure.sh
Seulement dans ./art: pfc.ben
Seulement dans ./rooms: boutonrouge.sh
Seulement dans ../_votre jeu/rooms: meteofrance.sh
Seulement dans ./rooms: papier.sh
```
```
search boutonrouge.sh
------------------------------------------------------------------------------
Searching for boutonrouge.sh recursively. Please Wait...
------------------------------------------------------------------------------
------------------------------------------------------------------------------
```
shellcheck rooms/papier.sh
In rooms/papier.sh line 19:
function determiner_gagnant {
^-- SC1009: The mentioned syntax error was in this brace group.
In rooms/papier.sh line 20:
if [ "$1" == "$2" ]; then
^-- SC1046: Couldn't find 'fi' for this 'if'.
^-- SC1073: Couldn't parse this if expression. Fix to allow more checks.
In rooms/papier.sh line 28:
exit ;;
^-- SC1047: Expected 'fi' matching previously mentioned 'if'.
^-- SC1072: Unexpected . Fix any mentioned problems and try again.

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

BIN
images/CAP_theorem.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB