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,38 +1,50 @@
#!/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

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
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
# Fonction pour afficher l'interface du jeu
draw_game() {
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 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
}
echo "Mise à jour archive meteo : ${MOATS}" # Initialisation des variables
echo ${MOATS} > ~/.zen/adventure/meteo.anim.eu/.moats 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))
OLDID=$(cat ~/.zen/adventure/.meteo.index 2>/dev/null) # Position initiale du serpent
# TODO : COMPARE SIMILAR OR NOT snake_body_rows[0]=$((height / 2))
# ipfs get "/ipfs/$OLDID/meteo.anim.eu/meteo.png" snake_body_cols[0]=$((width / 2))
## PREPARE NEW index.html # Fonction pour déplacer le serpent
sed "s/_OLDID_/$OLDID/g" ${MY_PATH}/../templates/meteo_chain.html > /tmp/index.html move_snake() {
sed -i "s/_IPFSID_/$IPFSID/g" /tmp/index.html local i
sed -i "s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g" /tmp/index.html for ((i = ${#snake_body_rows[@]} - 1; i > 0; i--)); do
sed "s/_PSEUDO_/${USER}/g" /tmp/index.html > ~/.zen/adventure/index.html snake_body_rows[$i]=${snake_body_rows[$((i - 1))]}
snake_body_cols[$i]=${snake_body_cols[$((i - 1))]}
done
# Copy style css case $direction in
cp -r ${MY_PATH}/../templates/styles ~/.zen/adventure/ "UP")
snake_body_rows[0]=$((snake_body_rows[0] - 1))
INDEXID=$(ipfs add -rHq ~/.zen/adventure/* | tail -n 1) ;;
echo $INDEXID > ~/.zen/adventure/.meteo.index "DOWN")
echo "METEO INDEX : http://127.0.0.1:8080/ipfs/$INDEXID" snake_body_rows[0]=$((snake_body_rows[0] + 1))
;;
IPFS=$(ipfs add -q ~/.zen/adventure/meteo.anim.eu/meteo.png | tail -n 1) "LEFT")
echo $IPFS > ~/.zen/adventure/meteo.anim.eu/.chain snake_body_cols[0]=$((snake_body_cols[0] - 1))
;;
"RIGHT")
snake_body_cols[0]=$((snake_body_cols[0] + 1))
;;
esac
}
# Fonction pour vérifier les collisions
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 fi
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
if [[ ${snake_body_rows[0]} -eq $fruit_row && ${snake_body_cols[0]} -eq $fruit_col ]]; then
generate_fruit
grow_snake
fi
return 0
}
# Fonction pour faire grandir le serpent
grow_snake() {
local last_index=$(( ${#snake_body_rows[@]} - 1 ))
local last_row=${snake_body_rows[$last_index]}
local last_col=${snake_body_cols[$last_index]}
snake_body_rows+=($last_row)
snake_body_cols+=($last_col)
}
# Fonction pour générer un nouveau fruit
generate_fruit() {
fruit_row=$((RANDOM % (height - 2) + 1))
fruit_col=$((RANDOM % (width - 2) + 1))
}
# Boucle principale du jeu
while true; do
draw_game
echo "Score: ${#snake_body_rows[@]}"
# Appel à la fonction move_snake pour que le serpent avance automatiquement
move_snake
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