begin process at 2012 02 09 15:10:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Algorithme

 > 

Autre

 > 

doute sur la boucle du Tant que


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

doute sur la boucle du Tant que

jeudi 15 mai 2008 à 16:47:44 | doute sur la boucle du Tant que

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*

jeudi 15 mai 2008 à 17:26:15 | Re : doute sur la boucle du Tant que

f0xi

Membre Club Administrateur CodeS-SourceS
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.



jeudi 15 mai 2008 à 20:17:53 | Re : doute sur la boucle du Tant que

littlebonbon

Merci f0xi ;)
jeudi 15 mai 2008 à 20:44:30 | Re : doute sur la boucle du Tant que

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+
jeudi 15 mai 2008 à 21:04:15 | Re : doute sur la boucle du Tant que

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.
vendredi 16 mai 2008 à 16:53:25 | Re : doute sur la boucle du Tant que

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.


Cette discussion est classée dans : end, do, jeu, tr, begin


Répondre à ce message

Sujets en rapport avec ce message

Index d'un table Dbase [ par webazard ] Bonjour, je crée un base Dbase indiqué dans l'aide de delphi en remplacant ttparadox par ttdbase.en supprimant la construction d'index min prog marche StringGrid et Fichier text pour lire [ par ahmed12 ] oubadjSalut tout le mande Je veux savoir comment j' ouvrir le contenue d'un fichier texte dans un TstringGrid Ling par ling. Comme avec le memo , j'a Ttreeview TADOQuery (delphi) avec une base SQL Serveur 2000 [ par le zedi ] Bonjours ,bonjours,Voila je dois utiliser ttreeview pour faire apparaitre en arborescence le nom de mes sites, batiments et articles qui sont stocké d garder plusieurs images en memoire [ par valkyrie ] Bonjourj aimerais garder en memoire plusieurs images en meme temps du genrej ai une fenetre avec 6 boutons d opendialogje rentre le nom de l image dan exo sur les tableau pour les debutents [ par aom2009 ] ce programme c'est pour s'exercer sur les tableaux ecrit par aom2009 program tab_de_2dimension; uses crt; {itroduction [HELP]Problème avec insertion ADOQuery [ par denden13h54 ] Bonjour, j'ai un gros problème d'insertion avec ADOQuery. J'insère ans une base de donnée MySQL. je vous montre le code qui bug : [code=pas]with ADO Problème de transparence d'un contrôle [ par ThWilliam ] Bonjour à tous. J'écris un composant transparent dérivé de TCustomControl. Je ne peux pas le dériver de TGraphicControl, car j'ai besoin d'un contrôl Problème de création d'un TVarRec[] [ par JeremyLecouvert ] Bonjour tout le monde, je galère depuis 3 jours sur un passage de paramètres (pitoyable!).. Je tourne en rond, quelqu'un pourra sûrement m'aider... TRadioGroup = faire un mix des premiers boutons... [ par showmessage ] Salut tout le monde ! Voilà j'ai un pépin : je doit réaliser un RadioGroup avec 4 boutons : les opérations X,:,+ et - pour un quizz de calcul mental Problème de connexion avec le serveur MySQL [ par figoleparigo ] Bonjour à tous, Je travaille sur un service Windows en Delphi/Pascal et j'utilise une BD MySQL pour traiter des données. J'utilise mysql.pas + libmys


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,432 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales