réglage de bugs

This commit is contained in:
FaycoTLS 2024-02-26 13:07:24 +01:00
parent 0e953757e3
commit 6154d5ca0a
5 changed files with 234 additions and 63 deletions

View File

@ -67,6 +67,9 @@ Il faut installer ''' sudo apt install xdg-utils ''' ainsi que ''' sudo apt inst
Le levier ne fonctionne pas, « ACTIVATION STATION » mais rien ne se passe. Le levier ne fonctionne pas, « ACTIVATION STATION » mais rien ne se passe.
c'est parce que le script ne se souvient que du premiere appel du levier donc il faut le lui rappeller juste après l'action avec :
leverstate=$(cat $MY_PATH/../logic/leverlogic.ben)

View File

@ -13,23 +13,22 @@ done <"$file1"
echo echo
# It's script time again... # It's script time again...
sleep 1
echo "Vous pénétrez à l'intérieur de l'Astroport." echo "Vous pénétrez à l'intérieur de l'Astroport."
echo echo
sleep 3
echo "Une voix synthétique vous accueille." echo "Une voix synthétique vous accueille."
espeak "Welcome. Please Identify." > /dev/null 2>&1 espeak "Welcome. Please Identify." > /dev/null 2>&1
echo echo
echo "Vous parcourez l'espace du regard" echo "Vous parcourez l'espace du regard"
echo "Au nord, face à vous se trouve un foyer où brule un feu." echo "Au nord, face à vous se trouve un foyer où brule un feu."
echo echo
sleep 3
echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?" echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?"
echo "A l'est il y a un genre de 'photomaton' " echo "A l'est il y a un genre de 'photomaton' "
sleep 2 echo
echo "Derrière vous, la porte par où vous êtes entré est encore ouverte." echo "Derrière vous, la porte par où vous êtes entré est encore ouverte."
echo echo
echo "Que voulez vous faire?" echo "Que voulez vous faire?"
echo
echo "Il y a également un ordinateur au millieu de la pièce avec l'inscription : 'Appuyez sur U pour lancer le jeu'"
# And once again the room logic. # And once again the room logic.

View File

@ -1,40 +1,52 @@
#!/bin/bash #!/bin/bash
clear 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 # Initialise the Title Art
file1="titleart.ben" file1="../art/titleart.ben"
while IFS= read -r line while IFS= read -r line
do do
echo "$line" echo "$line"
done <"$file1" done <"$file1"
echo echo
# So here's a little story all about how this script got flip-turned upside down... # It's script time again...
sleep 1 echo "Vous parcourez l'espace du regard"
echo "You're in a corridor, but it's quite a small one. You got here" echo "Au nord, face à vous se trouve un foyer où brule un feu."
echo "the first time by hugging a statue of a kitten. Standard."
echo echo
echo "You see a glow coming from the rooms to your east and west, and" echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?"
echo "there's a big, old looking door to the south of you." echo "A l'est il y a un genre de 'photomaton' "
echo echo
echo "What would you like to do?" echo "Derrière vous, la porte par où vous êtes entré est encore ouverte."
echo
echo "Que voulez vous faire?"
echo
echo "Il y a toujours l'ordinateur au millieu de la pièce avec l'inscription : 'Appuyez sur U pour lancer le jeu'"
# Imma let you finish, but here's the room choices. # And once again the room logic.
while true; do while true; do
read -p "> " nsewuh read -p "> " nsewuh
case $nsewuh in case $nsewuh in
n ) echo "You faceplant the wall. Idiot." ;; n ) echo "Vous vous asseyez sur le grand tapis devant le feu. Vous vous relaxez un instant."
./magic8.sh
;;
s ) ./bigroom.sh s ) ./bigroom.sh
exit ;; exit ;;
e ) ./gameroom.sh e ) ./gameroom.sh
exit ;; exit ;;
w ) ./grue.sh w ) ./grue.sh
exit ;; exit ;;
u ) echo "There's nothing you can use right here." ;; u ) echo "Vous tapotez sur le barmoètre. Une photo satellite?"
h ) echo "After hugging that cat you aren't sure you should try to hug yourself again." ;; ./meteofrance.sh
* ) echo "I'm sorry, I don't understand you. Commands are: n, e, s, w, u and h.";; 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 esac
done done
esac esac
exit exit

View File

@ -14,7 +14,6 @@ done <"$file1"
echo echo
# Shakesphere wrote this, honest. # Shakesphere wrote this, honest.
sleep 1
echo "Vous êtes de retour à votre point de départ." echo "Vous êtes de retour à votre point de départ."
echo "La forêt qui vous entoure est immense." echo "La forêt qui vous entoure est immense."
echo "Vous ne pouvez pas vraiment en imaginer la taille," echo "Vous ne pouvez pas vraiment en imaginer la taille,"

View File

@ -1,58 +1,216 @@
#!/bin/bash #!/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 # Fonction pour afficher l'interface du jeu
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized draw_game() {
ME="${0##*/}" clear
for ((i = 0; i < height; i++)); do
for ((j = 0; j < width; j++)); do
if [[ $i -eq 0 || $i -eq $((height - 1)) || $j -eq 0 || $j -eq $((width - 1)) ]]; then
echo -e "\033[1;34m#\033[0m\c"
elif [[ $i -eq $fruit_row && $j -eq $fruit_col ]]; then
echo -e "\033[1;31m@\033[0m\c"
else
local is_snake_segment=false
for ((k = 0; k < ${#snake_body_rows[@]}; k++)); do
if [[ $i -eq ${snake_body_rows[$k]} && $j -eq ${snake_body_cols[$k]} ]]; then
echo -e "\033[1;32m#\033[0m\c"
is_snake_segment=true
break
fi
done
if [[ $is_snake_segment == false ]]; then
echo -e " \c"
fi
fi
done
echo
done
}
## TEST IPFS # Initialisation des variables
[[ ! $(which ipfs) ]] && echo "Missing IPFS. Please install... https://ipfs.tech" && exit 1 height=20
width=40
snake_body_rows=()
snake_body_cols=()
snake_length=1
direction="RIGHT"
fruit_row=$((RANDOM % (height - 2) + 1))
fruit_col=$((RANDOM % (width - 2) + 1))
## PREPARE FILE SYSTEM CACHE # Position initiale du serpent
mkdir -p ~/.zen/adventure/meteo.anim.eu snake_body_rows[0]=$((height / 2))
rm -f ~/.zen/adventure/meteo.anim.eu/meteo.png snake_body_cols[0]=$((width / 2))
## SCRAPING meteo.png # Fonction pour déplacer le serpent
curl -m 20 --output ~/.zen/adventure/meteo.anim.eu/meteo.png https://s.w-x.co/staticmaps/wu/wu/satir1200_cur/europ/animate.png move_snake() {
local i
for ((i = ${#snake_body_rows[@]} - 1; i > 0; i--)); do
snake_body_rows[$i]=${snake_body_rows[$((i - 1))]}
snake_body_cols[$i]=${snake_body_cols[$((i - 1))]}
done
if [[ ! -f ~/.zen/adventure/meteo.anim.eu/meteo.png ]]; then case $direction in
"UP")
snake_body_rows[0]=$((snake_body_rows[0] - 1))
;;
"DOWN")
snake_body_rows[0]=$((snake_body_rows[0] + 1))
;;
"LEFT")
snake_body_cols[0]=$((snake_body_cols[0] - 1))
;;
"RIGHT")
snake_body_cols[0]=$((snake_body_cols[0] + 1))
;;
esac
}
echo "Impossible de se connecter au service meteo" # Fonction pour vérifier les collisions
exit 1 check_collision() {
if [[ ${snake_body_rows[0]} -le 0 || ${snake_body_rows[0]} -ge $((height - 1)) || ${snake_body_cols[0]} -le 0 || ${snake_body_cols[0]} -ge $((width - 1)) ]]; then
return 1
fi
else for ((i = 1; i < ${#snake_body_rows[@]}; i++)); do
if [[ ${snake_body_rows[0]} -eq ${snake_body_rows[$i]} && ${snake_body_cols[0]} -eq ${snake_body_cols[$i]} ]]; then
return 1
fi
done
echo "Mise à jour archive meteo : ${MOATS}" if [[ ${snake_body_rows[0]} -eq $fruit_row && ${snake_body_cols[0]} -eq $fruit_col ]]; then
echo ${MOATS} > ~/.zen/adventure/meteo.anim.eu/.moats generate_fruit
grow_snake
fi
OLDID=$(cat ~/.zen/adventure/.meteo.index 2>/dev/null) return 0
# TODO : COMPARE SIMILAR OR NOT }
# ipfs get "/ipfs/$OLDID/meteo.anim.eu/meteo.png"
## PREPARE NEW index.html # Fonction pour faire grandir le serpent
sed "s/_OLDID_/$OLDID/g" ${MY_PATH}/../templates/meteo_chain.html > /tmp/index.html grow_snake() {
sed -i "s/_IPFSID_/$IPFSID/g" /tmp/index.html local last_index=$(( ${#snake_body_rows[@]} - 1 ))
sed -i "s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g" /tmp/index.html local last_row=${snake_body_rows[$last_index]}
sed "s/_PSEUDO_/${USER}/g" /tmp/index.html > ~/.zen/adventure/index.html local last_col=${snake_body_cols[$last_index]}
snake_body_rows+=($last_row)
snake_body_cols+=($last_col)
}
# Copy style css # Fonction pour générer un nouveau fruit
cp -r ${MY_PATH}/../templates/styles ~/.zen/adventure/ generate_fruit() {
fruit_row=$((RANDOM % (height - 2) + 1))
fruit_col=$((RANDOM % (width - 2) + 1))
}
INDEXID=$(ipfs add -rHq ~/.zen/adventure/* | tail -n 1) # Boucle principale du jeu
echo $INDEXID > ~/.zen/adventure/.meteo.index while true; do
echo "METEO INDEX : http://127.0.0.1:8080/ipfs/$INDEXID" draw_game
echo "Score: ${#snake_body_rows[@]}"
IPFS=$(ipfs add -q ~/.zen/adventure/meteo.anim.eu/meteo.png | tail -n 1) # Appel à la fonction move_snake pour que le serpent avance automatiquement
echo $IPFS > ~/.zen/adventure/meteo.anim.eu/.chain move_snake
fi read -s -t 0.2 -n 1 action
case $action in
"z")
if [[ $direction != "DOWN" ]]; then
direction="UP"
fi
;;
"s")
if [[ $direction != "UP" ]]; then
direction="DOWN"
fi
;;
"q")
if [[ $direction != "RIGHT" ]]; then
direction="LEFT"
fi
;;
"d")
if [[ $direction != "LEFT" ]]; then
direction="RIGHT"
fi
;;
esac
# Vérifier les collisions après le déplacement
check_collision
if [[ $? -eq 1 ]]; then
echo "Bravo ! Vous avez eu le score de ${#snake_body_rows[@]} ! Appuyez sur \"q\" pour quitter le jeu ou sur \"r\" pour rejouer"
read -n 1 -s choice
case $choice in
q)
./kroo2.sh
;;
r)
./meteofrance.sh
;;
*)
echo "Choix non reconnu."
;;
esac
fi
done
# #!/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