|
Trouver une ressource
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)
Informations & options pour cette discussion
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
|
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
|
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
|
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
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|