1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| Participant est une structure
Nom est une chaîne
Classement est un entier
Club est une chaîne
PrisParTirage est un booléen = Faux // permet de savoir si le participant est déjà sélectionner par le tirage au sort
FIN
Listeparticipant est tableau de Participant
NbParticipant est entier
NbParticipantPrisPartirage est entier
NumTirageParticipant1,NumTirageParticipant2 sont des entiers
Rencontre est tableau de * par 2 Participant
TirageOk est un booléen = Faux
// incription des participants
//
TableauAjouteLigne(Listeparticipant,["NomParticipant1",12,"Club1",Faux])
TableauAjouteLigne(Listeparticipant,["NomParticipant2",2,"Club1",Faux])
TableauAjouteLigne(Listeparticipant,["NomParticipant3",1,"Club1",Faux])
TableauAjouteLigne(Listeparticipant,["NomParticipant4",18,"Club1",Faux])
TableauAjouteLigne(Listeparticipant,["NomParticipant5",16,"Club2",Faux])
TableauAjouteLigne(Listeparticipant,["NomParticipant6",17,"Club2",Faux])
TableauAjouteLigne(Listeparticipant,["NomParticipant7",5,"Club2",Faux])
TableauAjouteLigne(Listeparticipant,["NomParticipant8",4,"Club3",Faux])
// Tirage ou sort des équipes
NbParticipant = TableauOccurrence(Listeparticipant)
BorneMin est un entier
BorneMax est entier
NbParticipantPrisPartirage = 0
// Initialise le générateur de nombres aléatoires
//InitHasard()
// A toi de faire les test si tu ne peux pas faires des équipes de deux
//
//
TANTQUE NbParticipantPrisPartirage < NbParticipant
//Tirage au sort
TirageOk = Faux
//Définition de borne min
POUR i = 1 A NbParticipant
BorneMin = i
SI PAS Listeparticipant[i].PrisParTirage ALORS
SORTIR
FIN
FIN
POUR i = NbParticipant A 1 PAS -1
BorneMax = i
SI PAS Listeparticipant[i].PrisParTirage ALORS
SORTIR
FIN
FIN
Trace(BorneMin,BorneMax)
// On teste si il ne reste pas que deux participant
SI NbParticipant - NbParticipantPrisPartirage > 2 ALORS
TANTQUE PAS TirageOk
NumTirageParticipant1 = Hasard(BorneMin, BorneMax)
// on test si il n'est pas déjà pris
TANTQUE Listeparticipant[NumTirageParticipant1].PrisParTirage
NumTirageParticipant1 = Hasard(BorneMin, BorneMax)
FIN
NumTirageParticipant2 = Hasard(BorneMin, BorneMax)
// on test si il n'est pas déjà pris
TANTQUE Listeparticipant[NumTirageParticipant2].PrisParTirage OU NumTirageParticipant1 = NumTirageParticipant2
NumTirageParticipant2 = Hasard(BorneMin, BorneMax)
FIN
// on test si c'est pas le même numéro, si il ne sont pas du même club
//
// A toi de faire ta séparation pour les têtes de série
// pour ça utilise 2 listeparticipant une pour les têtes et une pour les autres ainsi tu lancera deux tirage au sort
//
SI Listeparticipant[NumTirageParticipant1].club = Listeparticipant[NumTirageParticipant2].club ALORS
TirageOk = Faux
SINON
TirageOk = Vrai
FIN
FIN
// on ajoute la sélection à rencontre
//
TableauAjouteLigne(Rencontre,Listeparticipant[NumTirageParticipant1],Listeparticipant[NumTirageParticipant2])
//on indique que les participant font sont déjà sélectionner
Listeparticipant[NumTirageParticipant1].PrisParTirage = Vrai
Listeparticipant[NumTirageParticipant2].PrisParTirage = Vrai
NbParticipantPrisPartirage+=2
SINON
// Il ne reste que deux candidat
//
NumTirageParticipant1 = BorneMin
NumTirageParticipant2 = BorneMax
// on test si il ne sont pas du même club.
// si c'est le cas on réinitialise tout le tirage
SI Listeparticipant[NumTirageParticipant1].club = Listeparticipant[NumTirageParticipant2].club ALORS
POUR i = 1 A TableauOccurrence(Listeparticipant)
Listeparticipant[i].PrisParTirage = Faux
FIN
TableauSupprimeTout(Rencontre)
NbParticipantPrisPartirage = 0
SINON
// on ajoute la sélection à rencontre
//
TableauAjouteLigne(Rencontre,Listeparticipant[NumTirageParticipant1],Listeparticipant[NumTirageParticipant2])
//on indique que les participant font sont déjà sélectionner
Listeparticipant[NumTirageParticipant1].PrisParTirage = Vrai
Listeparticipant[NumTirageParticipant2].PrisParTirage = Vrai
NbParticipantPrisPartirage+=2
FIN
FIN
FIN
POUR i= 1 A TableauOccurrence(Rencontre)
Trace(Rencontre[i][1].Nom + " du club " + Rencontre[i][1].club, "vas rencontrer " ,Rencontre[i][2].Nom + " du club " + Rencontre[i][2].club)
FIN
Trace("")
Trace("") |
Partager