Les Allergies
Alimentaires
Posez votre question Signaler

Langage perl - pb jeu du pendu [Fermé]

Papillempy - Dernière réponse le 15 nov. 2008 à 12:39
Bonjour,
je dois réaliser le jeu du pendu avec le langage perl mais je rencontre quelques soucis lorsqu'il faut indiquer au deuxieme joueur, quand il rentre sa lettre, en quelle position elle se situe. le programme se bloque sur la position1 pour tte lettre rentrée...
Les conditions de l'énoncé: le mot entré par le premier joueur doit etre de 7lettres, le deuxieme joueur entre n'importe quelle lettre, le programme donne la position si lettre apparait dans le mot sinon il sarrete. par la suite, le deuxieme joueur doit pouvoir jouer 7coups càd le nombre de lettres du mot initial + 3coups de bonus.
Voici mon programme:
#!/usr/bin/perl
use strict;
use warnings;
my $mot;
my $longueur;
my $lettre;
my $lettre1;
my $lettre2;
my $lettre3;
my $lettre4;
my $lettre5;
my $lettre6;
my $lettre7;
print"Saisir un mot ";
$mot=<STDIN>;
chomp $mot;
$longueur=length($mot);
$lettre1=substr($mot,0,1);
$lettre2=substr($mot,1,1);
$lettre3=substr($mot,2,1);
$lettre4=substr($mot,3,1);
$lettre5=substr($mot,4,1);
$lettre6=substr($mot,5,1);
$lettre7=substr($mot,6,1);
if($longueur<7){
print"Votre mot doit avoir 7 caracteres\n";
}
else{
if($longueur>7){
print"Votre mot doit avoir 7 caracteres\n";
}
else{
print"Saisir une lettre ";
$lettre=<STDIN>;
chomp $lettre;
}
if($lettre = $lettre1){
print"La lettre est en position 1\n";
}
if($lettre = $lettre2){
print"La lettre est en position 2\n";
}
if($lettre = $lettre3){
print"La lettre est en position 3\n";
}
if($lettre = $lettre4){
print"La lettre est en position 4\n";
}
if($lettre = $lettre5){
print"La lettre est en position 5\n";
}
if($lettre = $lettre6){
print"La lettre est en position 6\n";
}
if($lettre = $lettre7){
print"La lettre est en position 7\n";
}}
Merci de me répondre et m'indiquer quel serait selon vous le problème. je pense qu'il faut rajouter quelque chose entre la lettre rentrée et faire un lien avec la position de la lettre composant le mot, mais quoi?
Merci d'avance
Empy *.
Lire la suite 

Langage perl - pb jeu du pendu »

Suggestions
6 réponses
Réponse
+0
moins plus
j'ai le même travail à faire que toi (INLF15 Mme Zaoui)et j'en suis à la quatrième étape pour l'instant ça fonctionne !donc je te donne mon algorithme ça te fera gagner du temps:
#!/usr/bin/perl
use strict;
use warnings;

my $mot;
my $longueur;
my $lettre;
my $lettre1;
my $lettre2;
my $lettre3;
my $lettre4;
my $lettre5;
my $lettre6;
my $lettre7;
my $i;

while($longueur!=7){
print"Saisir un mot ";
$mot=<STDIN>;
chomp $mot;
system('cls');
$longueur=length($mot);

print"Votre mot doit avoir 7 caracteres\n";
}
for($i=1;$i<=10;$i=$i+1){
print"Saisir une lettre ";
$lettre=<STDIN>;
chomp $lettre;


$lettre1=substr($mot,0,1);
$lettre2=substr($mot,1,1);
$lettre3=substr($mot,2,1);
$lettre4=substr($mot,3,1);
$lettre5=substr($mot,4,1);
$lettre6=substr($mot,5,1);
$lettre7=substr($mot,6,1);



if($lettre eq $lettre1){
print"La lettre est presente en position 1\n";
}
if($lettre eq $lettre2){
print"La lettre est presente en position 2\n";
}
if($lettre eq $lettre3){
print"La lettre est presente en position 3\n";
}
if($lettre eq $lettre4){
print"La lettre est presente en position 4\n";
}
if($lettre eq $lettre5){
print"La lettre est presente en position 5\n";
}
if($lettre eq $lettre6){
print"La lettre est presente en position 6\n";
}
if($lettre eq $lettre7){
print"La lettre est presente en position 7\n";

}
}

Papillempy - 14 nov. 2008 à 16:24
je te donne une réponse dès que j'ai un peu plus avancé...
dodie - 15 nov. 2008 à 02:27
en tout cas c'est vraimment cool je pensais pas que j'allais butter sur ça je pensais même finir mon devoir assez vite mais j'ai de gros probleme j'ai besoin d'aide!!!!!, mais si jamais on s'enverra nos trucs comme ça je pense qu'on pourrait aller plus vite
Papillempy - 15 nov. 2008 à 12:39
Coucou,

je n'ai pas tout compris à ton dernier msg... lol. J'ai un peu réfléchi et je pense que pour qu'il y ait marqué "bravo, tu as gagné" ou "tu es pendu" il faut poser un compteur sur chaque lettre du mot.Ainsi, à chaque fois que tu rentreras une lettre, si elle correspond a une de celles composant le mot, alors le compteur monte de 1. L'arret, c'est quand ton compteur est =7...Voila, pour le moment, c juste ma pensé, je ne l'ai pas vérifié, ni tapé sur crimston...j'y travail cet aprem. Je te donne mon adresse, je pense que ca ira plus vite pour que l'on communique!!!
Ce document intitulé « Langage perl - pb jeu du pendu » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?