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
| # Fonction de traitement d'un cycle complet sur le cube
def CycleToutesCourses(CoefRub):
global XBasesX
global NbCycles
global LieuCourse
global Discipline
global SvNbCoursesGains
global SvMontantGains
# Initialisation des zones de calcul pour le bilan financier
NbCoursesGains = 0
MontantGains = 0
MontantJeux = 0
CptEcartMoyen = 0
CptEcartMaxi = 0
Z4Calcules = 0
EcartMoyen = 0
EcartMaxi = 0
Ecart = 0
# on boucle sur les courses charges dans XBasesX
for BasesX in XBasesX:
# Calcul des points cumulés pour chaque cheval de la course lignes 0 à 19
for Bases in BasesX:
# Cumul des 14 rubriques colonnes 3 à 17
for Rub in range(0,14):
Bases[3] = Bases[3] + (CoefRub[Rub] * Bases[Rub + 4])
# Tri préalable sur colonne 8 classement ClaStatsCombi
BasesX = sorted(BasesX, key=itemgetter(8))
# Tri sur colonne 3 Cumul des valeurs dégressives de 5 à 1 points pour les 5 premiers des classements de chaque rubriques
BasesX = sorted(BasesX, key=itemgetter(3), reverse=True)
# Bilan Z4 combiné 8 chevaux 70
MontantJeux += 70
Z4 = 0
for i in range(0,9):
if BasesX[i][2] == 1 or BasesX[i][2] == 2 or BasesX[i][2] == 3 or BasesX[i][2] == 4:
Z4 += 1
if Z4 == 4:
NbCoursesGains += 1
if BasesX[0][19] > 0:
MontantGains = MontantGains + BasesX[0][19]
else:
# Gains approximatifs calculés lorsque le rapport du Z4 est inconnu
if (BasesX[1][19] * BasesX[2][19] * BasesX[3][19] / 10) > 0:
MontantGains = MontantGains + (BasesX[1][19] * BasesX[2][19] * BasesX[3][19] / 10)
else:
# 80 par défaut si incalculable
MontantGains = MontantGains + 80
Z4Calcules += 1
if CptEcartMaxi > EcartMaxi:
EcartMaxi = CptEcartMaxi
EcartMoyen = EcartMoyen + CptEcartMoyen
if CptEcartMoyen != 0:
Ecart += 1
CptEcartMoyen = 0
CptEcartMaxi = 0
else:
CptEcartMoyen += 1
CptEcartMaxi += 1
# on sort du cycle sous les conditions suivantes =>
# Au bout 10 courses analysées, si moins de 2 courses ont été pronostiquées
# Au bout 20 courses analysées, si moins de 5 courses ont été pronostiquées
# Au bout 50 courses analysées, si moins de 11 courses ont été pronostiquées
# Au bout 100 courses analysées, si moins de 21 courses ont été pronostiquées
# Si l'écart maximum est supérieur à 10
if (MontantJeux > 630 and NbCoursesGains < 2) or (MontantJeux > 1330 and NbCoursesGains < 5) or (MontantJeux > 3430 and NbCoursesGains < 11) or (MontantJeux > 6930 and NbCoursesGains < 21) or EcartMaxi > 10:
break
# Enregistrement du bilan financier dans Parametres
# Si le montant des gains ou le nombre de courses gagnées s'est amélioré
if NbCoursesGains > SvNbCoursesGains or MontantGains > SvMontantGains:
if EcartMoyen > 0:
EcartMoyen = round(EcartMoyen / Ecart, 2)
EnregistreParam(CoefRub,EcartMoyen,EcartMaxi,NbCourses,NbCoursesGains,MontantJeux,MontantGains,Z4Calcules)
print(NbCycles," - ",strftime("%Y%m%d %H:%M",gmtime())," - ",CoefRub," - NbCG=",NbCoursesGains," - Gains=",MontantGains," - Z4C=",Z4Calcules)
if NbCoursesGains > SvNbCoursesGains:
SvNbCoursesGains = NbCoursesGains
if MontantGains > SvMontantGains:
SvMontantGains = MontantGains
else:
if NbCycles % 50000 == 0:
print(NbCycles," - ",strftime("%Y%m%d %H:%M",gmtime())," - ",CoefRub," - NbCG=",NbCoursesGains," - Gains=",MontantGains," - Z4C=",Z4Calcules) |
Partager