AIDE le jeu du pendu en script shell

Camlel -  
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:
#!/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:

3 réponses

Utilisateur anonyme
 
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 :
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.
3
Camlel
 
Je ne suis que un debutant désolé, mais merci beaucoup !
0
Utilisateur anonyme > Camlel
 
débutant ? au jeu du pendu ? mdr !

ok, ok, je sors.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
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 :
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… 🐧
3
Camlel
 
testexo est mon fichier avec dans chaque ligne un mot (il y a 10 lignes)
0