begin process at 2008 07 05 13:27:55
1 205 182 membres
158 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : doute sur la boucle du Tant que [ Algorithme / Autre ] (littlebonbon)

doute sur la boucle du Tant que le 15/05/2008 16:47:44

littlebonbon

bonjour,
J'aimerais un petit coup de main par raport a la notion du tant que.
Je réalise un programme du jeu 421; dans mon programme je souhaite que le jeu continue tant que la personne n'a pas atteint le 421 , mais je ne sais pas comment le traduire...
J'ai essayé en écrivant :

while (TR[1]<>4) and(TR[2]<>2) and (TR[3]<>1)do
    begin
      for I := 1 to 3 do
          begin
            writeln('voulez-vous relancer le des',I,'?taper 1 pour garder ou 2 pour relancer');
            readln(choix);
            if choix= 1 then
              begin
              TR[I]:= TD[I];
              end;

            if choix=2 then
              begin
              TR[I]:= random(6)+1;
              end;
          end;

    writeln('votre nouveau jeu est');
      for I := 1 to 3 do
        begin
      writeln(TR[I]);
        end;
end;

Il prend en compte ma demande mais dès que j'obtient un des 3 chiffres , il s'arrête.. Comment faire pour que le jeu ne s'arrete que une fois le 421 obtenu?
Merci de m'éclairer

*littlebonbon*


Re : doute sur la boucle du Tant que le 15/05/2008 17:26:15

f0xi
Membre Club
(Admin CS)
Réponse acceptée !

repeat
...
until [TR[1], TR[2], TR[3]] = [1,2,4];

repeter jusqu'a ce que l'ensemble [TR] contient les même element que l'ensemble [1,2,4]

[1,2,4] = [1,2,4]
[1,2,4] = [1,4,2]
[1,2,4] = [2,1,4]
[1,2,4] = [2,4,1]
[1,2,4] = [4,1,2]
[1,2,4] = [4,2,1]

ce qui evite de faire des conditions trop complexe.




Re : doute sur la boucle du Tant que le 15/05/2008 20:17:53
Re : doute sur la boucle du Tant que le 15/05/2008 20:44:30

florenth
Membre Club
Attention aussi à la logique de la... logique booléenne !

while (TR[1]<>4) and (TR[2]<>2) and (TR[3]<>1)do

Si TR = (4, 0, 0) alors (TR[1] = 4) = False et donc tu sors de ta boucle ! D'où l'effet que tu observes !
Il faudrait donc mettre

while (TR[1] <> 4) or (TR[2] <> 2) or (TR[3] <> 1) do

ou bien (ce qui est équivalent) :

while not ((TR[1] = 4) and (TR[2] = 2) and (TR[3] = 1)) do

Petite piqure de rappel donc :
not (A and B) = not A or  not B
not (A or B)  = not A and not B

La solution de f0xi est à préconiser si tu veux tester les cas sans tenir compte de l'ordre d'apparition des chiffres, ce qui est la cas au 421, mais je te cite ceci car tu risques fort bien d'en avoir besoin tôt ou tard...

A+

Re : doute sur la boucle du Tant que le 15/05/2008 21:04:15

littlebonbon
florenth > ce que tu dis n'est pas faux mais je n'ai pas montré tout ce que j'ai déjà écris.. j'ai démarré mon programme avec randomise codé de facon a ce que je ne tombe jamais sur 0.
Ce pendant ta réfléxion m'a fait penser au cas ou le joueur dit autre chose que 1 ou 2 qu'il faut que je réalise ^^.

Une petite question , quand je fais l'exe, tout ce passe bien sauf que quand je demande à garder la valeur,  des fois elle n'est pas gardée...et d'autre fois elle est conservée.. comment l'expliquer?
merci beaucoup pour vos réponses.

Re : doute sur la boucle du Tant que le 16/05/2008 16:53:25

florenth
Membre Club
Mon exemple avec (4,0,0) reste tout à fait valable avec n'importe quoi d'autre que des zéros puisque dans ton code original, c'est le 4 qui fait tout foirer.

Pour ton autre problème, aucune idée.


Classé sous : end, do, jeu, tr, begin

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Redaction texte pour s...
Budget : 180€
Travail graphique- ill...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS