[VB 2005] - Problème dans ce code !!

Fermé
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 - 20 déc. 2005 à 10:57
 Florent - 16 déc. 2007 à 18:12
Bonjour à tous!
Le logiciel que je suis en train de développer est un logiciel de gestion de concours de belote. Lors de la première manche, les équipes sont tirées au sort. Il y a nbEquipes inscrites au tournoi, nbEquipes est obligatoirement un nombre pair.
Je suis sous VB 2005 et j'ai un problème dans ce code :

        
        Dim equNum As Integer = 0
        Dim equNum1 As Integer = 0
        Dim equNum2 As Integer = 0
        Dim nbEquipesTMP As Integer = nbEquipes
        Dim TabEquipes(nbEquipes) As Integer
        Dim nI As Integer = 0
        Dim nJ As Integer = 0
        Dim nK As Integer = 0


        For nI = 0 To nbEquipes - 1
            TabEquipes(nI) = nI + 1
        Next


        For nI = 1 To nbEquipes / 2
            For nJ = 1 To 2
                equNum = TabEquipes(Int((Rnd() * nbEquipesTMP)) + 1)

                For nK = equNum To nbEquipesTMP - 1
                    TabEquipes(nK) = TabEquipes(nK + 1)
                    nbEquipesTMP -= 1

                    If nJ = 1 Then
                        equNum1 = equNum
                    Else
                        equNum2 = equNum
                    End If

                Next nK

            Next nJ
            frmConcours.lstConfront.Items.Add("e" & equNum1 & " vs e" & equNum2)
        Next nI


Avec ce code, cela me tire plusieurs fois une même équipe ce qui n'est pas bon!
Exemple de résultat pour nbEquipes = 8 :
e6 - e8
e7 - e5
e1 - e1
e1 - e2

Si quelqu'un pouvais m'aider ça serait super !!!
Merci d'avance et bonne journée
A voir également:

2 réponses

Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
20 déc. 2005 à 16:44
salut,

je n'ai pas VB 2005, mais ta déclaration "Dim nbEquipesTMP As Integer = nbEquipes" me semble bizarre, vu que nbEquipes n'est pas encore défini.

0
NezEnMoins Messages postés 100 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 9 mai 2008 4
23 déc. 2005 à 14:54
Si j'ai déclaré la variable comme ça :
Dim nbEquipes As Integer = 10

J'ai oublié de l'écrire dans l'échantillon de code que j'ai mis sur ce forum...
0
Pour information, j'ai développé un logiciel de gestion de concours de belote, disponible ici :

http://concoursbelote.sourceforge.net/

Je pense que ça répond bien à la question que tu pose. Tu trouveras dans les sources les algorithmes que j'ai utilisé pour les tirages aux sorts :
- aléatoire (sans avoir 2 fois le même adversaire pendant tout le concours)
- tirage aléatoire mais faire jouer les X premiers du classement ensembled

Je suis ouvert à toutes suggestions et contributions !
0