Jeu du pendu en pascal

Fermé
miss-mojahid Messages postés 5 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 10 mai 2009 - 8 mai 2009 à 00:05
miss-mojahid Messages postés 5 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 10 mai 2009 - 10 mai 2009 à 13:31
Bonjour,
j'ai un mini projet pour le jeu du pendu en pascal avec les procédures et les fonctions plus les fichiers,, j'ai commencer mais je n'arrive pas a le terminer, il manque de détails et d'améliorations
les variables globales sont :
mot: string, {le mot caché}.
motjeu : string {le mot affiché au joueur}
letvin : array[1..10] of char ; (tableau contenant les lettres invalides)
nbletinv : integer ; {nombre de lettre invalides}
fonction principales :
procédure init_motjeu:
//initialise motjeu en remplaçant les caractères par des points sauf le premier et le dernier
procédure affiche_jeu :
// affiche le lettre passée en parametres aux bons endrois dans motjeu si la lettre axiste, sinon elle l'ajoute au tableau letvin et incrémente nbletinv;
fonction fin_jeu : integer ;
// fonction qui détermine l'etat du jeu, elle retourne :
0 : si le jeu peut continuer
1: si le mot est trouvé par le joueur (le joueur gagne)
2 : si le nombre de lettres invalides atteint 10 (le joueur perd
programme principal :
// il doit initialiser motjeu (procédure init_motjeu) puis affiche le jeu (procédure affiche_jeu) dans une boucle, on va demander au joueur de taper une lettre, le lettre sera placée par la procédure place_lettre(...) et le jeu sera affiché par affiche_jeu; la boucle vérifie la valeur retournée par la fonction fin_jau si cette valeur n'est pas nulle (le jeu est termine) on sort de la boucle et on affiche le résultat; en cas de perte, on affiche le mot caché au joueur. avec le graphique célèbre du jeu du pendu mais j'arrive pas a le faire ( quand l'utilisateur entre un caractère non valide il affiche une tiret jusqu'à la fin du jeu ça veut dire 10 caractères non-valides)
c'est le début que j'ai fait :

program mini2projet;
uses wincrt;
var mot:string; (*mot caché*)
motjeu: string;(*le mot affiche au joueur,initialisé par:M....N*)
letvin:array[1..10] of char;(* tableau contenent les lettres invalides*)
nbletinv:integer; (*nombre de lettre invalide*)

procedure exerfichier;
var f:text;
ch:string;
n,i:integer;
begin
randomize;
assign(f,'c:\chou.txt');
reset(f);
n:=random(10)+1;
for i:=1 to n do
begin
readln(f,ch);
end;
mot:=ch;
close(f);

end;

procedure init_motjeu;
var i: integer;
begin
motjeu:=mot;
for i:=2 to (length(mot)-1) do
motjeu[i]:='.';
end;
procedure affiche_jeu;
var i:integer;
begin
writeln(motjeu);
write('lettre invalide: ');
for i:=1 to nbletinv do
write(letvin[i],' ');
writeln;
writeln('Essais: ',nbletinv);

end;
procedure place_letrre (lt:char);
var i, cpt :integer; existe:boolean;
begin
existe:=false;
for i:=2 to (length(mot)-1) do
begin
if (lt=mot[i])then
motjeu [i]:=lt;
existe:=true;
end;
if not existe then
existe:= false;
begin
nbletinv:= nbletinv+1;
letvin[nbletinv]:=lt;
end;
end;
function fin_jeu :integer;
begin
if mot =motjeu then
else if nbletinv=10 then
fin_jeu:=2
else fin_jeu:=0;
end;
begin
exerfichier;
init_motjeu;
nbletinv:=10;
letvin[1]:='Z';
letvin[2]:='W';
affiche_jeu;
end.

s'il vous plait , pouvez vous m'aidez de le terminer ??
A voir également:

2 réponses

Fir0x Messages postés 109 Date d'inscription jeudi 7 mai 2009 Statut Membre Dernière intervention 26 juillet 2010 14
8 mai 2009 à 00:12
Je crois que tu doit rajouter des "long"
0
miss-mojahid Messages postés 5 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 10 mai 2009
10 mai 2009 à 13:31
:-s j'ai pas compris ?? c'est une fonction ??
0