Salut
je penssse, si je comprend bien, qu'une table ds ta base n'est pas sufisante pour gérer tt ca !
il en faudrait au moins quatres:
- JOUEUR(
NumJ,Nom)
- MATCH(
NumMatch, NumJ1#,NumJ2#,NumT#,numTour#)
- TABLE(
NumT)
- TOUR(
NumTour)
J'avou ne pas trés bien comprendre cette phrase : "De plus il faut pouvoir gerer le fait qu'il n'est pas toujours possible d'éviter que 2 joueurs se rencontrent 2 fois ou qu'un joueur joue 2 fois sur la même table." (un peut chian pour l'algo !

) pour moi : un joueur peut jour 2 fois sur la mm table ms évidament pas contre un mm joueur.
pour l'algo(enfin je vais peu etre pas tt faire nn plus....

) du premier tour pas tres compliqué:
-créer un tableau type joueur:
public type Joueur
dim NumJ as Integer
dim nom as string
dim Jou as boolean
end type
- remplir le tableau "joueur" grace a une requete "select * from joueuer"et n mettant "Jou" a faux pour t les joueurs,
- ensuite tu parcour ton tableau du debut à la fin pour remplir la table match pour le premier tou uniquement, ca vait un truc du style :
Randomize
For i=1 to nombre_de_joueur_ds_le_tableau
if joueur(i).jou=false
index=joueur(int(rnd*nombre_de_joueur_ds_le_tableau))
while joueur(index).jou=true or index=i
index=joueur(int(rnd*nombre_de_joueur_ds_le_tableau))
wend
'la tu fait une pti commande sql pour remplir la table match avec numj1#-->joueur(i).NumJ et numj2#-->joueur(index).NumJ (pour la table je sait pas ca fait parti des chose que g pas bin captés) et NumT#=1 ( faut pas oublier de remplir ava,t la table "Table" sinon ca risque de chier)
end if
next i
Bon voila pour l premier tour c pas dit que ca va marcher mais ca peut t'aider quand mm !!
[ Lien ]