21 Novembre 2017 à 05:38:08

Auteur Sujet: Aide programme pascal  (Lu 1265 fois)

Adoniz

  • Nouveau membre
  • *
  • Messages: 1
  • Points gagnés: 0
    • Voir le profil
Aide programme pascal
« le: 21 Mai 2011 à 23:35:32 »
bonjour,

j'aimerais faire un programme du jeu mastermind en pascal (c'est un mini projet que je sois faire), et j'aurais besoin de votre aide pour corriger et améliorer le programme que j'ai écris , je vous signale que je suis débutant, je connais à peine les procédures, les fonctions, les tableaux les enregistrementrs ... dans mon programme j'aimerais integrer une matrice qui affiche les differentes tentatives effectuées pour trouver la combinaison secrète (cette matrice va donc être actualisée et affichée à chauqe tentative), j'aurais besoin que vous m'aidiez pour cela et que vous me montriez ce que je sois ajouter et/ou enlever pour améliorer mon programme.  

Voici le programme

rogram mastermind;

Type t_combinaison=string[4];
t_frequence=array[1..6] of integer;

Procedure Initial (C:t_combinaison; T:t_frequence);
Var i,j:integer; A:char;
Begin
randomize ;
for i:=1 to 4 do
begin
random(A)
C[i]:=CouleurVersNum(A)
end;
for i:=1 to 4 do
begin
j:=CouleurVersNum(C[i]);
T[j]:=T[j]+1;
end;
end;

Function CouleurVersNum ( Coul : Char) : Integer;
Var nb : Integer;
Begin
Case Coul Of
'R': nb := 1;
'B': nb := 2;
'V': nb := 3;
'J': nb := 4;
'N': nb := 5;
'O': nb := 6;
End;
CouleurVersNum := nb
End;


Procedure Essai (Var E : t_Combinaison ; Var F : t_Frequence);
Var i, j ,nb : Integer;
Begin
For j := 1 To 6 Do
F[j] := 0;
Write('Donner une combinaison ');
ReadLn(E);
For i := 1 To 4 Do
Begin
nb := CouleurVersNum (E[i]);
F[nb] := F[nb]+1;
End;
End;

Procedure Resultat(C, E : t_Combinaison; T, F : t_Frequence);
Var i, j, nb, x, y : Integer;
Begin
x := 0;
For i := 1 To 4 Do
If C[i] = E[i]
Then Begin
x := x + 1;
nb := CouleurVersNum(C[i]);
F[nb] := F[nb]-1;
T[nb] := T[nb]-1;
End;
y := 0;
For j := 1 To 6 Do
If  (T[j] > 0) AND (F[j] > 0) Then
If F[j] >= T[j]
Then y := y + T[j]
Else y := y + F[j];
WriteLn('Valeurs de x et y pour cet essai : x= ', x , ' et y = ', y);
End;

VAR C, E : t_Combinaison;
F, T : t_Frequence;
Nbessai : Integer;
BEGIN
Initial (C, T);
Nbessai := 0;
Repeat
NbEssai := NbEssai + 1;
Essai (E, F);
ResulTat ( C, E, T, F)
UNTIL (E=C) OR (NbEssai=10);
END.


Merci d'avance.



Merci d'utiliser les balises # code du menu édition lorsque vous insérez un code à vos messages.

L'équipe de Modération.


« Modifié: 22 Mai 2011 à 19:07:49 par Touta »