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 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
| # Les bâtiments construits sont stockés dans ces variables
maison_niv_1 = 0
maison_niv_2 = 0
maison_niv_3 = 0
entrepot_niv_1 = 0
entrepot_niv_2 = 0
entrepot_niv_3 = 0
total_batiment = 0
# Les projets de bâtiments en cours sont stockés dans ces listes,
# la première pour leurs noms/types, la deuxième pour leurs niveaux 1, 2 ou 3 et la dernière pour le temps de construction
projet_batiment_nom = []
projet_batiment_niv = []
projet_batiment_temps_construction = []
# ce groupe de 6 variables ne sert qu'à déterminer (plus loin dans le code) la vitesse de construction et à constater les coûts de construction
batisseur = 1
bois = 10000
pierre = 10000
surface_construite = 0.0
surface_constructible = 10000
nombre_heure_travaille = 8
# Cette fonction permet de completer les listes précédemment établies (je l'ai implémentée dans ce code car elle est nécessaire, mais je l'avais programmée avant)
def projet_construction(nombre, niv, type):
global projet_batiment_nom
global projet_batiment_niv
global projet_batiment_temps_construction
global bois
global pierre
global surface_constructible
global surface_construite
if type == "maison" :
if niv == 1:
for quantité in range(nombre) :
projet_batiment_nom.append("maison")
projet_batiment_niv.append(1)
projet_batiment_temps_construction.append(2.0)
bois -= 5
pierre -= 4
surface_constructible -= 1
surface_construite += 1
elif niv == 2:
for quantité in range(nombre) :
projet_batiment_nom.append("maison")
projet_batiment_niv.append(2)
projet_batiment_temps_construction.append(3.0)
bois -= 6
pierre -= 7
surface_constructible -= 2.5
surface_construite += 2.5
elif niv == 3:
for quantité in range(nombre) :
projet_batiment_nom.append("maison")
projet_batiment_niv.append(2)
projet_batiment_temps_construction.append(4.0)
bois -= 8
pierre -= 11
surface_constructible -= 4.5
surface_construite += 4.5
elif nombre == 0 :
pass
else :
print("Vous avez du faire erreur dans votre demande de construction de maison...")
if type == "entrepôt" :
if niv == 1:
for quantité in range(nombre) :
projet_batiment_nom.append("entrepôt")
projet_batiment_niv.append(1)
projet_batiment_temps_construction.append(1.0)
bois -= 10
pierre -= 1
surface_constructible -= 2
surface_construite += 2
elif niv == 2:
for quantité in range(nombre) :
projet_batiment_nom.append("entrepôt")
projet_batiment_niv.append(2)
projet_batiment_temps_construction.append(2.0)
bois -= 16
pierre -= 3
surface_constructible -= 5
surface_construite += 5
elif niv == 3:
for quantité in range(nombre) :
projet_batiment_nom.append("entrepôt")
projet_batiment_niv.append(3)
projet_batiment_temps_construction.append(3.0)
bois -= 23
pierre -= 5
surface_constructible -= 9
surface_construite += 9
elif nombre == 0 :
pass
else :
print("Vous avez du faire erreur dans votre demande de construction d'entrepôt...")
"""
Cette fonction est celle que je suis en train de faire,
elle doit permettre de faire évoluer les valeurs des listes de telle sorte que le temps de construction des bâtiments soit réduit de 0.5 à chaque utilisation
et une fois cette valeur à 0, elle doit suprimmer le bâtiment des 3 listes et incrémenter les 7 premières variables décrites au tout début du code en fonction du bâtiment construit
"""
def avancement_construction():
global projet_batiment_nom
global projet_batiment_niv
global projet_batiment_temps_construction
global maison_niv_1
global maison_niv_2
global maison_niv_3
global entrepot_niv_1
global entrepot_niv_2
global entrepot_niv_3
global total_batiment
global nombre_heure_travaille
# Cette variable indique quel index des listes traite la fonction, on part du plus grand vers le plus petit (pour éviter que l'index soit décalé à chaque modification)
index_avancement = len(projet_batiment_nom)-1
for quantiter in range(len(projet_batiment_nom)) :
# vitesse de construction (0.5 par tour en tout)
projet_batiment_temps_construction[index_avancement] -= batisseur * 0.0625 * nombre_heure_travaille
if projet_batiment_temps_construction[index_avancement] <= 0 :# si le bâtiment a fini d'être construit ou non
if projet_batiment_nom[index_avancement] == "maison": # vérification du type de bâtiment
if projet_batiment_niv[index_avancement] == 1 : # vérification du niveau du bâtiment
maison_niv_1 += 1
total_batiment += 1
# supression des données des trois listes
del projet_batiment_nom[index_avancement]
del projet_batiment_niv[index_avancement]
del projet_batiment_temps_construction[index_avancement]
# même principe pour la suite, mais pour les niveaux 2 et 3 de ce type de bâtiment. Puis, plus loin, le type suivant
elif projet_batiment_niv[index_avancement] == 2 :
maison_niv_2 += 1
total_batiment += 1
del projet_batiment_nom[index_avancement]
del projet_batiment_niv[index_avancement]
del projet_batiment_temps_construction[index_avancement]
elif projet_batiment_niv[index_avancement] == 3 :
maison_niv_3 += 1
total_batiment += 1
del projet_batiment_nom[index_avancement]
del projet_batiment_niv[index_avancement]
del projet_batiment_temps_construction[index_avancement]
index_avancement -= 1 # changement d'index une fois l'action effectuée
elif projet_batiment_nom[index_avancement] == "entrepôt" :
if projet_batiment_niv[index_avancement] == 1 :
entrepot_niv_1 += 1
total_batiment += 1
del projet_batiment_nom[index_avancement]
del projet_batiment_niv[index_avancement]
del projet_batiment_temps_construction[index_avancement]
elif projet_batiment_niv[index_avancement] == 2 :
entrepot_niv_2 += 1
total_batiment += 1
del projet_batiment_nom[index_avancement]
del projet_batiment_niv[index_avancement]
del projet_batiment_temps_construction[index_avancement]
elif projet_batiment_niv[index_avancement] == 3 :
entrepot_niv_3 += 1
total_batiment += 1
del projet_batiment_nom[index_avancement]
del projet_batiment_niv[index_avancement]
del projet_batiment_temps_construction[index_avancement]
index_avancement -= 1
#les listes sont remplies via la fonction "projet_construction"
projet_construction(3, 1, "entrepôt")
projet_construction(5, 2, "maison")
projet_construction(3, 1, "maison")
projet_construction(2, 2, "entrepôt")
# fonction donnant les informations sur l'évolution des variables
def print_test() :
print(projet_batiment_nom)
print(projet_batiment_niv)
print(projet_batiment_temps_construction)
print(maison_niv_1)
print(maison_niv_2)
print(maison_niv_3)
print(entrepot_niv_1)
print(entrepot_niv_2)
print(entrepot_niv_3)
print(total_batiment)
print("")
avancement_construction()
print_test()
print_test()
print_test()
print_test()
print_test()
print_test()
print_test() |
Partager