Bonsoir,
Alors voilà, je développe un logiciel de gestion de tournoi de pétanque, rien d'exceptionnel, mais voilà, je coince.
Le plus gros est fait, ça tourne, mais il faut fignoler quelques détails, et parmi ces détails, celui-ci : le programme doit générer aléatoirement les matchs pour la première partie, et donc tirer au sort les équipes...
A première vue, je gère, car en sortie de procédure de mélange des équipes (voir ci-dessous) tout est apparemment ok, sauf que plus loin, ça merde mais alors convenable...
J'aurais donc voulu votre avis concernant cette fameuse procédure de mélange, est-ce qu'à votre avis tout est bon ?
La voici :
Bon, allez-y molo avec la critique, je me remets au développement après 25 ans sans avoir écrit une seule ligne de code hein...
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
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 procedure MelangeEquipes(); var i, j, tmp : Integer; TabTmpBool : array of boolean; TabEquTmp : array of InfosEquipe; fini : boolean; begin SetLength(TabTmpBool, NbreEquipes+1); For i := 1 To NbreEquipes Do TabTmpBool[i] := False; SetLength(TabEquRand, NbreEquipes+1); Randomize; tmp := random(NbreEquipes)+1; TabEquRand[1] := tmp; TabTmpBool[tmp] := true; fini := False; i := 2; Repeat tmp := random(NbreEquipes)+1; If TabTmpBool[tmp] = False Then begin TabEquRand[i] := tmp; TabTmpBool[tmp] := true; end Else i -= 1; For j := 1 To NbreEquipes Do If TabTmpBool[j] = False Then break Else If (TabTmpBool[j] = true) And (j = NbreEquipes) Then fini:= true; i += 1; Until fini = true; SetLength(TabEquTmp, NbreEquipes); For i := 0 To NbreEquipes - 1 Do For j := 1 To NbreEquipes Do If TabEquipes[i].Num = TabEquRand[j] Then TabEquTmp[j-1] := TabEquipes[i]; SetLength(TabEquipes, 0); SetLength(TabEquipes, NbreEquipes); For i := 0 To NbreEquipes - 1 Do TabEquipes[i] := TabEquTmp[i]; end;
J'attends les avis...
Merci.
Partager