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
| # Les bâtiments construits sont stockés dans ce dictionnaire
Batiment_construit = {"maison_niv_1" : 0, "maison_niv_2" : 0, "maison_niv_3" : 0, "entrepôt_niv_1" : 0, "entrepôt_niv_2" : 0, "entrepôt_niv_3" : 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
ressource ={"bois" : 10000.0, "pierre" : 10000.0}
surface = {"surface_construite" : 0.0, "surface_constructible" : 10000.0}
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 ressource
global surface
if nombre > 0 :
for quantité in range(nombre) :
projet_batiment_nom.append(type)
projet_batiment_niv.append(niv)
calcul_temps_construction = niv
calcul_temps_construction = float(calcul_temps_construction)
projet_batiment_temps_construction.append(calcul_temps_construction)
ressource["bois"] -= 5
ressource["pierre"] -= 4
surface["surface_constructible"] -= 1
surface["surface_construite"] += 1
elif nombre == 0 :
pass
else :
print("Vous avez du faire erreur dans votre demande de construction de maison...")
"""
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 vitesse_construction():
global batisseur
global nombre_heure_travaille
# vitesse de construction (0.5 par tour en tout)
projet_batiment_temps_construction[index_avancement] -= batisseur * 0.0625 * nombre_heure_travaille
# la variable "index_avancement" est décrite dans la fonction "avancement construction" un peu plus bas
def fin_construction_batiment():
global Batiment_construit
if projet_batiment_temps_construction[index_avancement] <= 0 :# si le bâtiment a fini d'être construit ou non
# incrémentation du dictionaire "batiments_construits" avec les batiments dont le temps de construction est arrivé à zéro
if projet_batiment_nom[index_avancement] == "maison" and projet_batiment_niv[index_avancement] == 1 :
Batiment_construit["maison_niv_1"] += 1
elif projet_batiment_nom[index_avancement] == "maison" and projet_batiment_niv[index_avancement] == 2 :
Batiment_construit["maison_niv_2"] += 1
elif projet_batiment_nom[index_avancement] == "maison" and projet_batiment_niv[index_avancement] == 3 :
Batiment_construit["maison_niv_3"] += 1
elif projet_batiment_nom[index_avancement] == "entrepôt" and projet_batiment_niv[index_avancement] == 1 :
Batiment_construit["entrepôt_niv_1"] += 1
elif projet_batiment_nom[index_avancement] == "entrepôt" and projet_batiment_niv[index_avancement] == 2 :
Batiment_construit["entrepôt_niv_2"] += 1
elif projet_batiment_nom[index_avancement] == "entrepôt" and projet_batiment_niv[index_avancement] == 3 :
Batiment_construit["entrepôt_niv_3"] += 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]
def avancement_construction():
global index_avancement
# Cette variable indique quel index des listes traite les fonctions, 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 element in projet_batiment_nom :
vitesse_construction()
fin_construction_batiment()
index_avancement -= 1
#les listes sont remplies via la fonction "projet_construction"
projet_construction(3, 1, "entrepôt")
projet_construction(5, 3, "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("")
print(projet_batiment_nom)
print(projet_batiment_niv)
print(projet_batiment_temps_construction)
print(Batiment_construit)
avancement_construction()
print("")
print_test()
print_test()
print_test()
print_test()
print_test()
print_test()
print_test() |
Partager