Bonjour, je fais un Yahtzee en cours de programmation. Dans les règles, il est dit qu'une procédure ne peut pas être choisie deux fois. Pouvez-vous me dire comment je peux programmer cette règle ?
Bonjour, je fais un Yahtzee en cours de programmation. Dans les règles, il est dit qu'une procédure ne peut pas être choisie deux fois. Pouvez-vous me dire comment je peux programmer cette règle ?
Salut
Dans les règles de quoi ? qu'entends-tu par procédure ?
@+
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
Je ne sais si vous connaissez les règles du yahtzee mais on est toujours obligé de remplir une case. Puisque la case est remplie, on ne peut la choisir qu'une fois. C'est pour sa que je demande si c'est possible d'enlever une procédure...
Si cela peut vous aider voici une partie du programme...
Ce sont les procédures de 1 à 13 qui peuvent etre susceptible d'être enlevées
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 begin {1.Déterminer le nom du joueur} writeln('Quel est le nom du joueur 1 ?'); readln (nom); {2. Début du jeu} writeln (nom,' à votre tour , appuyer sur ENTER pour commencer'); readln(); total1:=0; total2:=0; clrscr; LANCEDE; CHOIX ; Case ChoixP of 1 : UN; 2: DEUX; 3: TROIS; 4: QUATRE; 5: CINQ; 6: SIX; 7: BRELAN; 8: CARRE; 9: FULL; 10: PSUITE; 11: GSUITE; 12: YAHTZEE; 13: CHANCE; End; if total1> 63 then total1:=total1+ 35; writeln ('Le score total 1 est égal à ',total1,'points'); writeln ('Le score total 2 est égal à ',total2,'points'); readln(); end.
Hoe,
Ok.
Tu ne peux pas "enlever" de procédures de ton programme.
Ce qu'il te faut, c'est interdire le les appeler.
Un tableau de booléens suffira pour ça : chaque case initialisée à false, et devient true après l'utilisation de la procédure.
Au passage, il serait sympa de changer l'affichage du menu de choix, soit en supprimant les procédures déjà utilisées, soit en en changeant la couleur d'affichage (par exemple vert pour celles qui sont encore accessibles, rouge pour les autres).
Si les cons volaient, il ferait nuit à midi.
Salut
Si j'ai à peu près compris ton besoin, le code fourni est assez lacunaire.
Dans la procédure Choix, l'utilisateur indique ce qu'il veut faire mais sous la contrainte de ne pas pouvoir recommencer une "procédure" (i.e. une forme de lancé) déjà jouée, sachant qu'elles sont toutes permises au départ.
Une solution simple consiste à créer un tableau d'autant de booléens qu'il y a de procédures (13 en l'occurrence) qui indique si une procédure a été jouée (True) ou non (False). Au départ toutes les procédures sont permises donc toutes les valeurs du tableau sont égales à False. Puis à chaque coup, tu passes le booléen correspondant à True. Dans ta procédure Choix, tu peux alors n'afficher que les choix restants et contrôler aussi la saisie du joueur.
Cette solution est simple, tout réside dans la procédure Choix, le choix multiple n'est pas remis en question.
Pour commencer :
La suite, à toi de chercher un peu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var CoupJoue: array[1..13] of boolean;
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
Droggo m'a grillé la politesse à qques minutes près
@+
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager