Arbitre de tennis en pascal

Résolu/Fermé
sherkh - 26 avril 2004 à 00:26
 abdellah_saida - 19 janv. 2008 à 15:26
bonjour à tous

je tente de programmer en pascal un programme d'arbitre de tennis mais voilà, je coince dès le comptage des points dans un jeu.

voilà ce que j'ai écrit:

Program arb ;

Var joueur1, joueur2 : string ;



Procedure Points;

Var x1, x2, y1, y2, z1, z2, touche, r: integer ;
     x10, x20 : string ;

          Begin

          x1:=0;
          x2:=0;
          y1:=0;
          y2:=0;
          z1:=0;
          z2:=0;
          r:=0;

           Repeat
           read(touche);
           If touche=1 Then
           begin
           x1:=x1+1;
           end
           else If touche=2 Then
           begin
           x2:=x2+1;
           end;

           If x1=0 Then
           begin
           x10:='0';
           end
           else If x1=1 Then
           begin
           x10:='15';
           end
           else If x1=2 Then
           begin
           x10:='30';
           end
           else If x1=3 Then
           begin
           x10:='40';
           end;


           If x2=0 Then
           begin
           x20:='0';
           end
           else If x2=1 Then
           begin
           x20:='15';
           end
           else If x2=2 Then
           begin
           x20:='30';
           end
           else If x2=3 Then
           begin
           x20:='40';
           end;

          If x1=4 Then
             begin
                  if x2<3 Then
                  begin
                  r:=1;
                  end
                  else If x2=3 then
                  x10:='A'; x20:='40';
                  Writeln (x10,'   Points   ',x20);
                  begin
                  read(touche);
                               If touche=1 Then
                               begin
                               r:=1;
                               end
                               else if touche=2 Then

                               begin
                               x1:=3;
                               x10:='40'; x20:='40';
                               end;
                  end;
             end

          else If x2=4 Then
             begin
                  if x1<3 Then
                  begin
                  r:=1;
                  end
                  else If x1=3 then
                  x10:='40'; x20:='A';
                  Writeln (x10,'   Points   ',x20);
                  begin
                  read(touche);
                               If touche=2 Then
                               begin
                               r:=1;
                               end
                               else if touche=1 Then

                               begin
                               x2:=3;
                               x10:='40'; x20:='40';
                               end;
                  end;
             end;

           If r=0 Then
           Writeln (x10,'   Points   ',x20);


           Until r=1;



END;

BEGIN
WriteLN ('      ');
WriteLN ('      ');
WriteLN ('                                  CONFIGURATION  ');
WriteLN ('      ');
WriteLN ('Nom du joueur 1:');
readLN (Joueur1);
WriteLN ('      ');
WriteLN ('Nom du joueur 2:');
readLN (Joueur2);
points ;
END.


ça marche pour gérer les égalités et avantges mais ça coince pour gagner un jeu blanc par exmple...

Si vous pouviez me donner quelques indications pour m'aider à continuer...

merci d'avance.
A voir également:

7 réponses

ok merci beaucoup pour ces indications je devrais pouvoir continuer.
a bientot.
1
JSS Messages postés 3745 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004 32
26 avril 2004 à 14:09
Salut,

Je ne sais pas trop ou est ton erreur mais je pense opvoir t'aider un peu. Le premier point tout d'abord c'est que ton code n'est pas trop commenté et malheureusement le nom de tes variables ne sont pas tres explicites (meme si je pense avoir compris).

A mon avis pour programmer ton arbitre tu devrais plutot faire un truc du genre :

-- une procedure qui compte le nombre de points gagnants (un compteur pour chaque joueur)
si touche = 1 alors compteurjoueur1 = compteuerjouer1 + 1;
si touche = 2 alors compteurjoueur2 = compteuerjouer2 + 1;


-- une procedure d'affichage.
si compteur = 1 alors '15'
si compteur = 2 alors '30'
si compteur = 3 alors '40'

...

-- une procedure qui teste si il y a un vainqueur :
-- pour gagner un joueur doit avoir une differecen entre les deux compteurs de lpus de 2 et avoir un ciompteur au moins egal a 4.
difference = compteurJoueur1 - compteurJouer2
si compteurJouer1 >= 4 et difference >=2 j'arrete Joueur1 gagne un eju.
sinon si compteurJouer2 >= 4 et difference <=-2 j'arrete Joueur2 gagne un jeu.

Voila .

C'est une solution il y en a plusieurs.

bon courage.

j'espere que ca t'aidera.

JSS
0
salut,
Chère frère je ne sais quoi vous dire mais votre solution est vraiment bizard où je ne comprend pas (en tous les cas je suis pas un fanne du tennis).
vous pouviez user le CASE (choix multiple)vous ne l'aviez pas fait
quand vous lisez les noms du 2 joueurs dans le pg principale quelle l'utilité puisque après les avoir lues vouz appelez la proc POINTS.
un autre pblème que je n'ai pas réussi à comprendre.
if x1=3 ou if x2=3 en ne le trouve qu'après tester if x1=4 ou if x2=4?????.
dernière question le R???.
pour le x10et x20 vous pouviez les mettres de type integer avec 3 condition
if (x1=1) or (x1=2) then x10=x10+15
if x1=3 then x10=x10+10
sachan que x10 ets initialiser par 0
Bon courage.
bonne chance.
Merci.
0
JSS Messages postés 3745 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004 32
27 avril 2004 à 10:19
salut,

as tu trouver ton erreur ?

bon courage

JSS
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
oui c'est bon , merci. j'ai réussi à finir ce programme, non sans mal d'ailleurs.
0
i_smiler Messages postés 6 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 4 mai 2008 1
9 févr. 2006 à 22:12
Salut Sherkh. Jai ossi le pblm pour la programmation de larbitre de tennis en pascal. Apparemmt toi tu as reussi ce serait cool de me lenvoyer jen ai vraiment besoin et je ten serai tres reconnaissante;) Merci davance
Joanna i_smiler@yahoo.fr
Merci encore jen ai vrmt besoin pour mon devoir dinfo je ten serai reconnaissante. A bientot;)
0
nicoseb Messages postés 1 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 1 avril 2006
1 avril 2006 à 09:12
bon je suis aussi coincé pour le decompte des points.
Ce serait cool que tu puisses m'envoyer ta solution histoire que je vois ce qui ne vas pas. Merci
0
moi g fait a peu pres comme toi mais g un probleme pour passer au comptage des jeux et des sets, bref pour finir le programme
si quelqu'un peut m'eclairer merci
0
abdellah_saida
19 janv. 2008 à 15:26
salut à tout,
je suis un etudient en informatique et je veux un programme par lengage pascal d'un simple jeux dans :abdellah_saida@yahoo.fr
merci a vous
0