Etienne BAUDOUX

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX

Le deal à ne pas rater :
Display One Piece Card Game Japon OP-08 – Two Legends : où la ...
Voir le deal

5 participants

    [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 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 : 3002
    Age : 27
    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 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 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 : 3002
    Age : 27
    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 Ven 26 Sep 2014 - 19:19

    de rien Wink
    lereparateurdepc
    lereparateurdepc



    Masculin Nombre de messages : 5621
    Age : 31
    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 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
    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 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 : 5621
    Age : 31
    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 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
    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 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 : 23
    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 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 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 : 23
    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 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 Mer 14 Jan 2015 - 19:18

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



    Masculin Nombre de messages : 3002
    Age : 27
    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 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 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 : 23
    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 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 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 : 3002
    Age : 27
    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 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 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 : 23
    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 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 : 3002
    Age : 27
    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 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: https://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 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 19 Avr 2024 - 13:58