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)

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
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é 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 SavetoFile ne fonctionne pas avec D2005 , [ par MarcelF ] Bonjour,J'ai un pb avec D2005, je voudrais sauver le contenu du clipboard dans un fichier. Ceci fonctionnait sans pb avec Office 2003.Avec Office 2007 Classe TThread dans composant, liaison entre deux instances ? [ par Bacterius ] Bonjour ! Alors voilà un problème - j'essaye de faire un timer très précis : malheureusement celui-ci a besoin d'un thread pour fonctionner ! Je cherc CopyDir + ProgressBar [ par magalio ] Bonjour a tout le mondeJ'ai un petit problème sur une procedure   procedure Copier( source, dest : string);begin     i :=0;     r := FindFirst(source+ Fermer Forms Dynamiques [ par nirG ] Bonjour,Je recherche une façon de fermer mes forms dynamiques. Je vous présente un bout de mon code afin que vous compreniez.for I := 0 to Compteurcha EmbeddedWB Refresh Problem mais chez WebBrowser pas de Probleme ?!!! [ par sarssor ] Salutcet Code sa marche bien avec WebBrowser mais je voudrais l'ituliser aussi dans EmbeddedWB :HTML clipboardprocedure TForm1.Button1Click(Sender: TO


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.