-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPartie.py
More file actions
135 lines (99 loc) · 3.57 KB
/
Partie.py
File metadata and controls
135 lines (99 loc) · 3.57 KB
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
# -*- coding: utf-8 -*-
"""
Éditeur de Spyder
"""
import Map
import numpy as np
from numpy.random import randint
import sys
import math
from Joueur import Joueur
from Constantes import Constante
from Unites_Hn_Attaquant import Scorpion
from Unites_Hn_Defenseur import Robot_combat
class Partie():
"""
Classe mère, contenant l'ensemble des propriétés des objets intervenant dans
le jeu.
"""
def __init__(self, nb_ia , nb_hn = 1):
"""
Permet de créer la partie, à partir du nombre de joueurs (humains et IA)
mis en entrée.
Paramètres
----------
nb_ia: int
Le nombre de joueurs IA.
nb_hn : int
Le nombre de joueurs humains.
"""
self.L_joueur = [Joueur('DH')]
self.nb_hn = nb_hn - 1
Posdisp = [ str(k) for k in range(self.nb_hn+nb_ia)]
while self.nb_hn > 0:
self.L_joueur.append(Joueur('AH'+Posdisp[0]))
Posdisp = Posdisp[1:]
self.nb_hn -= 1
nb_ia_0, nb_ia_1, nb_ia_2 = self.choix_niveau(nb_ia)
while nb_ia_0 > 0:
self.L_joueur.append(Joueur('AI_0_'+Posdisp[0]))
Posdisp = Posdisp[1:]
nb_ia_0 -= 1
while nb_ia_1 > 0:
self.L_joueur.append(Joueur('AI_1_'+Posdisp[0]))
Posdisp = Posdisp[1:]
nb_ia_1 -= 1
while nb_ia_2 > 0:
self.L_joueur.append(Joueur('AI_2_'+Posdisp[0]))
Posdisp = Posdisp[1:]
nb_ia_2 -= 1
self.mise_en_place()
self.carte = Map.Map(self.L_joueur)
def mise_en_place(self):
"""
Méthode exécutant les ajustements de base pour débuter la partie, sur chaque
joueur.
Paramètres :
-------------
Aucun.
Renvoie :
----------
Rien.
"""
self.L_joueur[0].metal_tot, self.L_joueur[0].energie_tot = Constante.metal_tot, Constante.energie_tot
def choix_niveau(self,nb_ia):
"""
Permet au joueur humain de choisir le niveau de difficulté de l'IA.
Paramètres
----------
nb_ia: int
Le nombre de joueurs IA.
Renvoie
---------
nb_ia_i (i entre 0 et 2) : int
Le nombre d'IA de niveau i, choisies par le joueur humain.
"""
nb_ia_0 = 0
nb_ia_1 = 0
nb_ia_2 = 0
for k in range(nb_ia):
self.lvl = False
print("Difficulté IA %i \n"%k )
self.niveau=input("Quel niveau voulez-vous lui donner ? 0 / 1 / 2")
if self.niveau=='0' or self.niveau=='1' or self.niveau=='2':
self.lvl=True
else:
while self.lvl==False:
self.niveau=input("Erreur. Quel niveau voulez vous lui donner ? 0 / 1 / 2")
if self.niveau=='0' or self.niveau=='1' or self.niveau=='2':
self.lvl=True
if self.niveau == '0':
nb_ia_0 +=1
elif self.niveau == '1':
nb_ia_1 +=1
else:
nb_ia_2 +=1
return(nb_ia_0, nb_ia_1, nb_ia_2)
if __name__ == "__main__":
Game = Partie(4,)
Game.carte.simuler()