IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Jeu du verger


Sujet :

VBA

  1. #21
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu ajoutes une condition dans ton else
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
          j = Int(Rnd * 4) + 1
          For i = 1 To 2
                If Arbre(j) > 1 Then
                          Arbre(j) = Arbre(j) - 1
                          enfant = enfant + 1 
                      Else
                          k = 0
                          Do 'tu sélectionnes un arbre au hasard
                              j = Int(Rnd * 4) + 1
                              k = k + 1
                              'tant que l'arbre est vide ou...
                              '... si tous les arbres sont vides, tu sors
                          loop While Arbre(j) = 0 and k < 5 
                          if Arbre(j) > 0 then ' s'il n'est pas vide, tu prends ta cerise 
                              enfant = enfant + 1
                              Arbre(j) = Arbre(j) - 1
                          endif
                endif
    A+

  2. #22
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Bien j'ai effectué les changements mais quelque chose ne fonctionne pas bien....

    En effet, si l'on regarde les hypothèes mon hypothèse 1 à savoir prendre 2 fruits dans l arbre ayant le plus de fruits devrait être la meilleure hypothèse, or, bien souvent la seconde (choix aléatoire) l'emporte...
    Quant à la troisième, elle est obtient autant que la première...

    Quelques chose cloche dans le code, je crois...

    J'ai beau essayer de revoir... je pense que cela serait lié au fameux cas du 41 car je compte 1 point quand les enfant sont égales à 40 or le point va au corbeau quand >40...

    Non?

  3. #23
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    est ce que cela soit possible que cela vienne tout simplement de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Case 1, 2, 3, 4
                  if arbre(result)>0 then
      enfant = enfant + 1
                        Arbre(result) = Arbre(result) - 1
    else
    end if
    en effet on ne verie pas que l'arbre ait bien des fruits pour pouvoir les enlever, en effet quend j'ai testé il a descendu mon arbre à -1...

    En plus il ne faut pas que après auand je veux compter le nombre de fruit restant que je passe à 41...

    Là j'avoue je galère mes resultats des simulations ne sont pas tels qu'il devraient lêtre...

    Peut etrq u 'on approche...

  4. #24
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Là je t'avoue que je suis complètement perdu. Depuis le tout début, ton code a un peu évolué...
    Tu ne pourrais pas le remettre ?
    Et indente-le correctement, ça m'évitera d'avoir à le faire et ça éclaircira la relecture.
    A+

  5. #25
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Voici tout le code annoté...



    J'espère que tu vas y voir plus clair, moi là je tourne en rond en fait depuis tout à l'heure...

  6. #26
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ça y est, j'ai compris.
    Dans le cas 2, si tu as 2 et qu'il reste 1 sur deux arbres différents, j'avais précisé qu'on passait son tour. Pour ton test, c'est pas bon.
    S'il ne reste qu'une cerise sur ces deux arbres ou qu'il n'en reste qu'une sur un arbre, l'enfant doit pouvoir la cueillir.
    Tu devrais pouvoir régler ce pb tout seul. Quant à moi, j'aurais besoin de ton code.
    A+

    Edit
    J'ai vu que tu avais mis le code

  7. #27
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Hum..... je semble voir, j'ai joint le code, non mais la chose qui m'étonne aussi vient du fait que l'hypothèse 3 (prendre le min) est aussi élevé en proba que l hypothese 1...

    Une autre question, si je souhaite faire apparaitre le nbre de fruits restants a chaque tout, dois je les emttre dans une variable...

    Hummm... quand tu dis 2, tu parles de l'hypothèse 2? ou dans le cas où l'on fait 2 au dé..

    De plus afin d'analyser je dois tester H1 contre H2, mais je ne sais aps comment utiliser la loi normale en fait sous VB...

  8. #28
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Une chose à la fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		Victoire enfants (%)		Victoire Corbeau (%)	
    Hypothèse 1		80			20	
    Hypothèse 2		100			0	
    Hypothèse 3		73,33333333		26,6666667
    Ce résultat est normal.
    Dans l'hypothèse 1, on ne retire rien s'il n'y a pas 2 cerises sur l'arbre et on passe son tour (je l'avais précisé réponse 5)
    Dans l'hypothèse 2, si aucun arbre n'a pas deux cerises, tu cherches les deux derniers arbres sur lesquels il reste une cerise et s'il n'en reste qu'une, tu la cueuilles et tu sors.
    Problème dans l'hypothèse 2, pour le moment la meilleure mais pas toujours. Par exemple, si le hasard ne te refile que des arbres vide jusqu'à ce que k = 5, dans la boucle ci-dessous, alors l'enfant a perdu ses deux cerises et il perd.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                      Else
                          k = 0
                          Do 'tu sélectionnes un arbre au hasard
                              j = Int(Rnd * 4) + 1
                              k = k + 1
                              'tant que l'arbre est vide ou...
                              '... si tous les arbres sont vides, tu sors
                          Loop While Arbre(j) = 0 And k < 5
                          If Arbre(j) > 0 Then ' s'il n'est pas vide, tu prends ta cerise
                              enfant = enfant + 1
                              Arbre(j) = Arbre(j) - 1
                          End If
     
                 End If
    Dans l'hypothèse 3, seul le hasard fait la différence avec l'hypothèse 1.
    Dans ces hypothèses, si tu n'as plus qu'une cerise et que le 5 sort, l'enfant va se retrouver avec 41 cerises et il restera 1 cerise sur l'arbre.
    Enfin, même si la cerise n'est pas cueillie, l'enfant peut se retrouver avec 40, voire 41... je ne sais plus dans quel cas de figure je commence aussi à saturer.

    Peux-tu m'exposer les trois hypothèses que tu veux examiner ?
    Quand joue le hasard ? quand ne doit-il pas jouer ? quels sont les éléments qui doinvent êtres dus au hasard dans l'une ou l'autre hypothèse.
    Il est facile de faire gagner l'hypothèse 1 (en excluant le hasard et donc en corrigeant le code, et si c'est ce que tu veux, mais il est plus difficile de différencier la 2 de la 3 par la simple modif de l'élément ou des éléments dû(s) au hasard.

    Peux-tu préciser ces points ?
    A+

  9. #29
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Lol moi aussi je m'y perds...

    Je répète les hypothèses.
    H1 : l'enfant qui fait 5 choisit les deux fruits dont il reste le plus
    H2 : l'enfant qui fait 5 choisit 2 fruits au hasard (eventuellement les deux memes parmi ceux qui restent)
    H3: l'enfant qui fait 5 choisit les deux fruits dont il reste le moins

    La face 5 permet de ramasser deux fruits au choix (eventuellemnt les deux mêmes) parmi ceux restant
    La face 1 à 4 permet de ramasser un fruit correspondant à l'arbre (au numéro), et rien sinon..

    Voilà les hypothèses de départ...

  10. #30
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Il te manque une hypothèse
    Si 5, l'enfant ne ramasse rien s'il ne reste qu'un fruit en tout et pour tout (mon hypothèse de départ) et donc il passe son tour.
    Non ?

  11. #31
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Hum... je souhaiterais savoir comment on fait pour chercher dans le tableau la valeur minimale,c'est à dire que j'essaie de faire l'hypothèse 3 de façon à renvoyer l'arbre qui a le moins de fruit...

    Bien étant donné que l'on veut arriver à 40, je pense que l'enfant peut ramasser le dernier fruit...

    J'ai mis des if enfant=39 pour qu'il retire 1 fruit car j'avais remarqué qu'il n en retirait pas si l'arbre n'avait plus qu'un fruit...

    J'ai un probleme concernant le choix 3, prendre les fruits ds l'arbre qui en a le moins, je ne sais pas comment ecrire cela...

  12. #32
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu fais l'hypothèse 1 pour 5, mais à l'envers Et tu fais la même chose pour 1, 2, 3 et 4
    Je regarderai ça mais pas maintenant. Je règle un autre problème
    Sans doute demain. Tu as un délai ?
    A+

  13. #33
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Oui mdr justement demain....

    Ha la la j'ai l impression de jamais m'en sortir de tout ça...

    Je fais l'inverse de 1 mais qu'entends tu par 1,2,3,4...?

    Et si je veux compter le nbre de fruit restant après chaque defaite des enfants je fais quoi?

  14. #34
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par aoking
    Et si je veux compter le nbre de fruit restant après chaque defaite des enfants je fais quoi?
    je te réponds à ça par mp, c'est le même code que celui que tu m'as donné auquel j'ai ajouté une ligne par hypothèse.
    Ce n'est sans doute pas ce que tu veux mais si tu déclares un tableau TatalParArbre(4) en Public, tu peux t'inspirer de ça en ajoutant pour la fin de chaque itération le nombre de cerises restant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 to 4
        TotalArbre(i) = TotalArbre(i) + Arbre(i)
    Next
    A+

  15. #35
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Ouais en fait ce que je cherche c'est à compter quand le corbeau gagne combien il reste de fruits dans les arbres à chaque fois.

    Je veux que ce nombre de fruit soit cumulé à chaque fois de façon à ce que quand le jeu est fini, on puisse savoir exactement combien de fruits il reste à chaque fois que le corbeau a gagné (le cumul)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Loop While Continuer And corbeau < 9 And enfant < 40
            If corbeau = 9 Then
                For i = 1 To 4
                reste = Arbre(i) - 40
                Next
     
               End If
    et après on fait afficher reste afin de savoir, mais le probleme c'est que reste varie dès que le corbeau gagne de nouveau...

  16. #36
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Voilà qui devrait enfin te plaire Pièce jointe 13297

    (Pour pouvoir lire les données, agrandis la fenêtre dans l'explorer)

Discussions similaires

  1. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  2. Réponses: 7
    Dernier message: 18/06/2003, 15h20
  3. [socket][tcp] jeu en reseau
    Par souris_sonic dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2003, 07h31
  4. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo