AIDE le jeu du pendu en script shell
Camlel
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour, je voudrais réaliser un script shell du célébre jeu du pendu.
Voici mon script:
Mon probleme est que j'aimerais prendre la valeur de pendu4 et le mettre dans pendu et continuer de jouer en affichant les lettres que j'ai déja trouvé, mais quand je fais ce que je fais il affiche seulement la lettre lu juste et non celle avant déja decouverte.
(J'espere vous arrivez à me suivre car j'ai l'impression que je m'explique tres mal).
Enfin, si quelqu'un peut m'aider ça me ferait vraiment plaisir !!
Voici mon script:
#!/bin/sh nbtent=9 nbligne=$(($$%10+1)) var=`head -$nbligne testexo | tail -1` pendu=$(echo $var | tr "[a-z]" "-" ) nblettre=$(echo -n "$mot" | wc -c) nbtent2=0 echo $var echo "le mot est $pendu avec 10 tentatives." echo "Pour commencer la partie de Pendu, il faut une lettre :" read lettre while test $nbtent -ne 0 do pres=$(echo $var | grep -c "$lettre") if [ $pres -eq 1 ] then echo "lettre là" pendu1=$(echo "$var" | sed 's/'$lettre'/£/g' ) pendu2=$(echo "$var" | sed 's/[a-z]/-/g' ) pendu3=$(echo "$pendu1" | sed 's/[a-z]/-/g') pendu4=$(echo "$pendu3" | sed 's/£/'$lettre'/g') else echo "lettre pas la" fi pendu=$pendu4 nbtent=$(($nbtent-1)) nbtent2=$(($nbtent+1)) echo $nbtent2 echo "saisir lettre" read lettre done
Mon probleme est que j'aimerais prendre la valeur de pendu4 et le mettre dans pendu et continuer de jouer en affichant les lettres que j'ai déja trouvé, mais quand je fais ce que je fais il affiche seulement la lettre lu juste et non celle avant déja decouverte.
(J'espere vous arrivez à me suivre car j'ai l'impression que je m'explique tres mal).
Enfin, si quelqu'un peut m'aider ça me ferait vraiment plaisir !!
A voir également:
- Gif pendu
- Jeu du pendu - Télécharger - Vie quotidienne
- Convertir gif en video - Guide
- Comment créer un gif - Guide
- Application gif gratuit - Télécharger - Animation
- Smart gif - Télécharger - Animation
3 réponses
salut,
tu devrais revoir les règles du pendu :
ce n'est pas n tentatives, mais n tentatives infructueuses.
ce n'est pas pareil !
comment se fait-il que ton script ne comporte pas de commentaires ?
tu n'as pas écrit d'algorithme avant d'écrire le code ?
il me semble, si j'ai bien compris, que tous tes sed sont inutiles.
tu doit réunir les lettres qui ont été précédemment trouvées dans une variable, et construire une regex :
et pense à soigner le nommage de tes variables.
var, par exemple, ça n'indique pas ce dont il s'agit.
tu devrais revoir les règles du pendu :
ce n'est pas n tentatives, mais n tentatives infructueuses.
ce n'est pas pareil !
comment se fait-il que ton script ne comporte pas de commentaires ?
tu n'as pas écrit d'algorithme avant d'écrire le code ?
il me semble, si j'ai bien compris, que tous tes sed sont inutiles.
tu doit réunir les lettres qui ont été précédemment trouvées dans une variable, et construire une regex :
motCherchE=monmotàmoi
lettresOK=o
lettresOK=${lettresOK}t
#affichage
echo "$motCherchE" | sed 's/[^'$lettresOK']/_/g'
et pense à soigner le nommage de tes variables.
var, par exemple, ça n'indique pas ce dont il s'agit.
Salut,

Rhaaaaaa, il manque une image dans le gif généré ;-(

Je me suis servi en parti de ton script, en y appliquant les bons conseils de qqchquicommenceparQ ;-)
J'y ai rajouté un poil de tput pour la mise en page et la présentation.
J'ai remplacé ton random par la commande shuf.
Quelques autres petites modifs :
Modifié en :
Modifiés en :
_______________________________ ☯ Zen my nuggets ☮ ______________________________
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot… 🐧

Rhaaaaaa, il manque une image dans le gif généré ;-(

Je me suis servi en parti de ton script, en y appliquant les bons conseils de qqchquicommenceparQ ;-)
J'y ai rajouté un poil de tput pour la mise en page et la présentation.
J'ai remplacé ton random par la commande shuf.
Quelques autres petites modifs :
nbligne=$(($$%10+1))
var=$(head -$nbligne testexo | tail -1)
Modifié en :
mothasard="$(shuf -n 1 testexo)"
pendu=$(echo $var | tr "[a-z]" "-" )
nblettre=$(echo -n "$mot" | wc -c)
Modifiés en :
pendu="${var//[a-z]/-}"
nblettre="${#var}"
_______________________________ ☯ Zen my nuggets ☮ ______________________________
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot… 🐧
ok, ok, je sors.