Arbitre de tennis en pascal
Résolu
sherkh
-
abdellah_saida -
abdellah_saida -
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:
ç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.
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:
- Arbitre de tennis en pascal
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? - Télécharger - Sport
- Probleme de requête - Forum Access
7 réponses
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
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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;)
Joanna i_smiler@yahoo.fr
Merci encore jen ai vrmt besoin pour mon devoir dinfo je ten serai reconnaissante. A bientot;)