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 ?
Version imprimable
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 ?
@+
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 :ccool:Code:
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).
:)
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:
1
2
3 var CoupJoue: array[1..13] of boolean;
Droggo m'a grillé la politesse à qques minutes près :rouleau:
@+