Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX


[résolu]Débutant : Tirage aléatoire

avatar
johnart
Nouveau
Nouveau

Masculin Nombre de messages : 2
Date d'inscription : 25/09/2014

[résolu]Débutant : Tirage aléatoire Empty [résolu]Débutant : Tirage aléatoire

Message par johnart le Ven 26 Sep 2014 - 16:32

Bonjour,
Je suis complètement débutant et j'utilise la version SoftwareZator 2014 gratuite. J'ai des notions de basic mais là je suis un peu perdu.
Voilà, j'essaie de créer un jeu tout simple : en cliquant sur le bouton cliquez ici, ça génère un nombre aléatoire compris entre 1 et 100 (dans mon exemple). Quand le chiffre 23 sort, il affiche Bravo ! 23 sort gagnant !
Ce que je n'arrive pas à faire, c'est que je voudrais que pour d'autres nombres que j'aurai choisis à l'avance, il y ait un message différent inventé par moi-même...
Par exemple, j'aurai bien aimé programmer de cette façon : si 'Nbaleat'=23 ou si 'Nbaleat'=33 ou si 'Nbaleat'=43, etc. alors... je vais vers l'étiquette désirée -> afficher Bravo ! 23 sort gagnant ! ou Bravo ! 33 sort gagnant ! etc.

Voici mes copies d'écran :

[résolu]Débutant : Tirage aléatoire <a href=[résolu]Débutant : Tirage aléatoire Copy1_imagesia-com_owc5_large" />

[résolu]Débutant : Tirage aléatoire <a href=[résolu]Débutant : Tirage aléatoire Copy2_imagesia-com_owc6_large" />

[résolu]Débutant : Tirage aléatoire <a href=[résolu]Débutant : Tirage aléatoire Copy3_imagesia-com_owc7_large" />

[résolu]Débutant : Tirage aléatoire <a href=[résolu]Débutant : Tirage aléatoire Copy4_imagesia-com_owc8_large" />

[résolu]Débutant : Tirage aléatoire <a href=[résolu]Débutant : Tirage aléatoire Copy5_imagesia-com_owca_large" />

[résolu]Débutant : Tirage aléatoire <a href=[résolu]Débutant : Tirage aléatoire Copy6_imagesia-com_owcc_large" />

[résolu]Débutant : Tirage aléatoire <a href=[résolu]Débutant : Tirage aléatoire Copy7_imagesia-com_owcd_large" />

Je suppose qu'il faut l'écrire en vb mais je n'y arrive pas.

Pourriez-vous m'aider svp ? Merci d'avance.
polien
polien


Masculin Nombre de messages : 2995
Age : 23
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par polien le Ven 26 Sep 2014 - 16:50

Bonjour Wink

Tout d'abord, bienvenue sur ce forum !
Ensuite, il faut savoir que si les étiquettes sont beaucoup utilisées en BASIC, elles ralentissent ton programme (car à chaque fois qu'une action renvoie à une étiquette, l'ordinateur scanne le code ligne par ligne pour la trouver). Pour ton cas, on va imbriquer des conditions (mettre des conditions dans des conditions). En gros, ça donne ceci :

[résolu]Débutant : Tirage aléatoire 111

tu place alors l'action pour afficher un message vers la colonne "Alors" de la condition pour laquelle ton message s'affiche Smile

avatar
johnart
Nouveau
Nouveau

Masculin Nombre de messages : 2
Date d'inscription : 25/09/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par johnart le Ven 26 Sep 2014 - 19:15

Oui, merci beaucoup, ce n'était pas évident mais ça marche !!! Résolu.
polien
polien


Masculin Nombre de messages : 2995
Age : 23
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par polien le Ven 26 Sep 2014 - 19:19

de rien Wink

lereparateurdepc
lereparateurdepc


Masculin Nombre de messages : 5606
Age : 26
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par lereparateurdepc le Ven 26 Sep 2014 - 19:50

re,

En tout cas, je remarque que tu n'as pas hésité à mettre des captures d'écran et c'est
une très bonne chose Smile

Mais sous Sz 2014, il n'y as pas une fonction pour faire des "ou", "et" :
[résolu]Débutant : Tirage aléatoire Sz24
Si l'autre option est sélectionnée, ça fait des "ou".

Ta méthode polien je l'utilise à chaque fois, et oui, je suis un ancien de Sz 2011 Smile
Oubliant cette fonction de SZ 2014 Sad

Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


[résolu]Débutant : Tirage aléatoire Wp_20110[résolu]Débutant : Tirage aléatoire 10_32010[résolu]Débutant : Tirage aléatoire Wp_20111[résolu]Débutant : Tirage aléatoire 07_sig10
davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Dim 21 Déc 2014 - 22:04

Bonjour,
Je me permets de relancer cette discussion afin de demander quelque chose.
Je voudrais simplement savoir comment éviter que, lorsque l'on crée un nombre aléatoire, un numéro précédemment sorti ne ressorte. J' ai essayé de voir du côté des variables tableau, mais je n'ai pas réussi à m'en servir de façon efficace (j'ai regardé les vidéos, mais elles ne m'ont pas éclairé), à moins qu'il y ai plus simple... 

De plus, est-il possible de programmer une action de fin, au moment où tous les numéros sont sortis?

En fait je n'arrive pas à garder en mémoire les numéros déjà sortis et à créer une action une fois que mes 53 numéros (et oui, j'en ai 53) sont sortis.

Merci d'avance pour l'aide que vous pourrez m'apporter

David
lereparateurdepc
lereparateurdepc


Masculin Nombre de messages : 5606
Age : 26
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par lereparateurdepc le Lun 22 Déc 2014 - 7:18

re,

Là oui, il faut passer par des tableaux....
à chaque tirage, tu regarde si le nombre actuel ne se trouve pas déjà dans le tableau;
si non, tu ajoute la valeur au tableau; si oui, tu refait le tirage tant que le nombre se trouve dans le tableau.

Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


[résolu]Débutant : Tirage aléatoire Wp_20110[résolu]Débutant : Tirage aléatoire 10_32010[résolu]Débutant : Tirage aléatoire Wp_20111[résolu]Débutant : Tirage aléatoire 07_sig10
davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Mer 14 Jan 2015 - 17:03

@lereparateurdepc a écrit:
à chaque tirage, tu regarde si le nombre actuel ne se trouve pas déjà dans le tableau;

Je pense que c'est là que je rate quelque chose, voici une capture d'écran qui explique ce que j'essaye de faire, mais qui ne marche pas!

Merci d'avance si quelqu'un peut m'aider,

David
[résolu]Débutant : Tirage aléatoire Sz11
fandeonepiece2
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 18
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par fandeonepiece2 le Mer 14 Jan 2015 - 17:41

Bonsoir Smile
Normalement c'est bon Smile
cordialement

davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Mer 14 Jan 2015 - 18:05

Bonsoir,
Malheureusement pas du tout, la "mémoire" (la variable tableau) ne fonctionne pas, ou bien la façon de la consulter. Les chiffres reviennent, parfois même deux fois à la suite, lorsque je clique à nouveau sur le bouton...
fandeonepiece2
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 18
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par fandeonepiece2 le Mer 14 Jan 2015 - 18:10

re,
essaye d'enlever le 0 dans la condition de la boucle Wink
cordialement

davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Mer 14 Jan 2015 - 19:18

Bien essayé, mais non plus... éhé
polien
polien


Masculin Nombre de messages : 2995
Age : 23
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par polien le Mer 14 Jan 2015 - 19:34

Bonjour,

Explication du problème Wink
[résolu]Débutant : Tirage aléatoire Dessin10

davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Mer 14 Jan 2015 - 22:03

Merci Polien,
Étant un littéraire inconditionnel, j'ai du mal à percevoir ce que communique ton schéma, j'ai cru comprendre que tu penses que ma condition 'tant que" est mal rédigée?

Je précise que pour test, j'ai modifié mon "tant que" en mettant :

"si aléatoire = 1"
à la place de
"si aléatoire = mémoire"

et à ce moment j'arrive effectivement à exclure le 1, la boucle marche marche donc très bien. Par contre lorsque je veux exclure tous les chiffres déjà sortis, et qui sont sensés s'accumuler dans la variable tableau "mémoire", alors ça ne marche pas du tout.

C'est comme si je n'arrivais pas à faire appel correctement aux données de la variable tableau.
Hors, pour test, si j'affiche le nombre de valeurs accumulées dans la variable tableau dans une text box, alors je vois bien que la variable accumule effectivement les données (chiffres déjà sortis)!
fandeonepiece2
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 18
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par fandeonepiece2 le Jeu 15 Jan 2015 - 5:54

bonjour Smile
je crois avoir compris également Smile
en fait, ce que tu fait actuellement, c'est voir si la variable aleatoire est égal à la variable tableau mémoire. mais mémoire est une var tableau. Donc elle à plusieurs valeurs Wink (à la suite). Ta condition ne test que la valeur zéro, qui est égal à zéro Wink
cordialement

davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Jeu 15 Jan 2015 - 8:45

Humm bien essayé, mais nan,

1. Si dans le form laod, je rentre 1 plutôt que 0 comme première donnée de la variable tableau, le 1 ne s'exclut pas. (en fait je rentre ce 0 au début par "bricolage", car s'il n'y a aucune valeur dans la variable tableau, au moment de la première comparaison '"tant que", celle-ci plante. Ce 0 n'est pas le problème)

2. Justement, si j'utilise une variable tableau, c'est dans l'espoir de comparer le chiffre aléatoire non pas avec la dernière valeur de la variable tableau, mais avec toutes les valeurs. Hors cela ne fonctionne juste pas.

Le réparateur de pc m'a dit qu'il s'agissait bien d'utiliser une variable tableau, mais comment faire pour comparer le chiffre aléatoire (1° événement) avec toutes les valeurs déjà sorties (2° événement "tant que") afin de ne jamais avoir le même chiffre aléatoire?
polien
polien


Masculin Nombre de messages : 2995
Age : 23
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par polien le Jeu 15 Jan 2015 - 10:10

Bonjour,

(C'est intéressant de connaitre ce que peuvent comprendre ou pas les "non scientifiques" (vu que j'écris des tutos sur le sujet Wink ) donc pas de soucis: je vais essayer d'être plus clair amusé )

D'après tes événements et ton algorithme, tu met la valeur 0 comme premier élément d'une variable tableau appelée "memoire" (premier élément = indice 0)

Tu met, ensuite, dans la variable "aleatoire" un nombre entre 1 et 5.

En effet, c'est vers la boucle que ça ne va pas: tu vérifie si la valeur de la variable "aleatoire" est égale au premier élément de la variable tableau memoire. Or la première valeur de cette variable tableau est toujours la même: 0.

Le fait d'ajouter la valeur généré au tableau à la fin de l'algorithme n'est adapté que si ce tableau est vérifié ligne par ligne au préalable. Puisque 1 ligne = 1 valeur différente.

Tu peut donc utiliser une variable i qui te permettra de vérifier les i valeurs de ton tableau par une boucle:

- Tu obtient le nombres de valeurs de la variable tableau "mémoire" dans la variable "i"
- Boucle de z=0 (z est une variable qui va servir à compter) jusqu'à i:
  - Si  aleatoire=memoire(z)
     - generer un nombre aléatoire dans la variable "aleatoire"
     - modifier la variable "z" par -1
  - Fin du Si
- Fin de la boucle Wink

davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Jeu 15 Jan 2015 - 14:39

Merci Polien!

Je n'avais effectivement pas compris comment fonctionnent les variables tableaux, et notamment les index. Si j'ai bien compris, à chaque nouvelle valeur ajoutée à la suite de la variable tableau correspond un index?
J'ai essayé de suivre tes instructions, mais mon log bug, je mets plus bas une capture d'écran et j'en profite pour poser trois questions (en fait j'en aurai plein, c'est ma première "boucle" donc pas bien saisi tout m'voyez):

- pourquoi : "modifier la variable "z" par -1" et pas par plus 1? ne veut-on pas monter dans les index?Mais je suis parti du principe que tu as raison!

- pourquoi inclure cette opération dans le "si"? ne veut-on pas que z diminue de 1 à chaque tour de boucle? (j'ai essayé de le mettre dans le "si" et en dehors, comme sur la capture, mais ça bug)

- qu'est que le "pas" de la boucle limitée?

Dans tous les cas merci beaucoup![résolu]Débutant : Tirage aléatoire Sz13
fandeonepiece2
fandeonepiece2
Je suis là tous les jours
Je suis là tous les jours

Masculin Nombre de messages : 1804
Age : 18
Localisation : chez moi
Emploi/loisirs : Programmation H24
Humeur : massacrante... si je n'ai pas ma dose journalière de programmation
Date d'inscription : 14/09/2013

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par fandeonepiece2 le Jeu 15 Jan 2015 - 15:48

Bonjour,
je note 2 erreurs Razz
t'inquiète c'est pas grave du tout Smile
alors déjà, soit Polien c'est trompé, soit il voulait écrire "1", mais c'était bizarre Razz. Je confirme donc, que c'est 1 et pas -1.
ensuite, il y a une petite problème :
tu dit dans le si alors sinon :
si aleatoire est égal à memoire...
et ensuite, tu modifie aleatoire, si c'est le cas. Mais si c'est pas le cas, tu fait rien Razz.
il va donc nous falloir une cinquième variable... et une autre boucle... Pour recommencer l'opération avec un autre nombre, si celui généré est déjà pris.
On va nommer notre 5ème variable nb_valide. On ne la met en tableau. 

Dans le clic du bouton, on donne la valeur 0 à nb_valide.
On génère un nombre aléatoire, qu'on met dans la variable aleatoire.
On obtient le nombre de valeurs dans la variable tableau memoire, et on stocke le nombre dans i.
Ensuite, on met une boucle limité :
de nb_valide = 1 jusqu’à 0 avec un pas de zéro. (ce qui fait que cela va recommencer tant que le nombre est en memoire)
Dedans, on met une autre boucle Razz :
de z = 0 jusqu'à la variable i avec un pas de 1. (On va vérifier si le nombre est égal à une des valeurs de la memoire)
dans cette dernière boucle, on va remettre une condition (si alors sinon) :
si 'aleatoire' est = à (memoire|%(VARIABLE=z)%)
Dans le Si on va modifier nb_valide et lui mettre la valeur 1. (si nombre est déjà en memoire)

En dehors (en dessous) de cette condition, mais dans la boucle numéro 2, on va mettre une autre condition :
Si nb_valide = 0.
dans le si, on met a nouveau l'action générer un nombre aléatoire, dans la variable aleatoire.
Dans le sinon on va modifier la propriété text de la textbox, par le contenu de la variable aleatoire.
On va aussi ajouter la valeur de aleatoire a la variable memoire Wink.

Normalement, ça doit être bon Smile
(c'est dur de donner un algo de tête Razz)
Cordialement

polien
polien


Masculin Nombre de messages : 2995
Age : 23
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par polien le Jeu 15 Jan 2015 - 17:35

@davidGe a écrit:Merci Polien!

Je n'avais effectivement pas compris comment fonctionnent les variables tableaux, et notamment les index. Si j'ai bien compris, à chaque nouvelle valeur ajoutée à la suite de la variable tableau correspond un index?
Tout à fait Wink la première valeur à l'indice 0, la 2ème valeur à l'indice 1...
@davidGe a écrit:
J'ai essayé de suivre tes instructions, mais mon log bug, je mets plus bas une capture d'écran et j'en profite pour poser trois questions (en fait j'en aurai plein, c'est ma première "boucle" donc pas bien saisi tout m'voyez):

- pourquoi : "modifier la variable "z" par -1" et pas par plus 1? ne veut-on pas monter dans les index?Mais je suis parti du principe que tu as raison!

- pourquoi inclure cette opération dans le "si"? ne veut-on pas que z diminue de 1 à chaque tour de boucle? (j'ai essayé de le mettre dans le "si" et en dehors, comme sur la capture, mais ça bug)
Parce que lorsque le nombre généré est déjà présent dans la variable tableau, tu génère un nouveau nombre et tu veut vérifier si ce nombre est présent dans tout ton tableau. Mais la ligne z actuellement lue de ton tableau sera la 1 ou la 4 ou autre... donc on remet au début. Pourquoi à -1 ? Parce que +1 est rajouté à chaque "boucle", donc si on met 0, la première valeur comparée sera la deuxième valeur de la variable tableau: memoire(1) et non memoire(0).
@davidGe a écrit:
- qu'est que le "pas" de la boucle limitée?
Le "pas" s'est la valeur qui est ajouté à la variable qui sert de compteur dans une boucle, par exemple, une variable qui va de i=0, avec un pas de 1, à z=4 va donner:
i=0
z=4

i=1
z=4

i=2
z=4

i=3
z=4

i=4
z=4
@davidGe a écrit:
Dans tous les cas merci beaucoup!
[résolu]Débutant : Tirage aléatoire Sz13
De rien Wink
Sinon tes actions on l'air correctes (au passage, merci pour les captures d'écrans qui facilitent notre compréhension amusé )
Voici l'algorithme auquel je pensais: mega.co.nz #!Dk1lAQrY!WU1VGG62QcWm7yQFNigwBsHA-aaCpP_-SwbX7VKseC8 (source + exécutable) Wink

davidGe
davidGe
Nouveau
Nouveau

Masculin Nombre de messages : 10
Date d'inscription : 09/12/2014

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par davidGe le Lun 19 Jan 2015 - 7:56

Super Polien, merci beaucoup!

Mes actions doivent comporter une erreur puisqu'il y a un bug,je vais faire la différence avec ton programme.

Merci pour les explications

Contenu sponsorisé

[résolu]Débutant : Tirage aléatoire Empty Re: [résolu]Débutant : Tirage aléatoire

Message par Contenu sponsorisé


    La date/heure actuelle est Ven 18 Oct 2019 - 2:19