Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Corentin MIMEAU
PolyDefense
Commits
0d298e35
Commit
0d298e35
authored
Dec 08, 2015
by
Mimeau Corentin
Browse files
Merge branch 'master' of
https://gitlab.univ-nantes.fr/E145267Z/PolyDefense
Conflicts: carte.py ok
parents
1863033f
43a6ccbc
Changes
5
Hide whitespace changes
Inline
Side-by-side
base.py
View file @
0d298e35
...
...
@@ -6,9 +6,11 @@ class Base:
self
.
niveau
=
1
#Niveau de la base
self
.
unitesDispo
=
None
#Unités que peut envoyer la base
self
.
aggressivite
=
0
#Calculé en fonction du nombre de soldats envoyés
self
.
argent
=
20
#Argent disponible
self
.
argent
=
20
0
#Argent disponible
self
.
revenu
=
20
#Revenu au début de chaque tour
self
.
unitesPoss
=
None
#Unités achetés pour la prochaine vague
self
.
liste_tour
=
[]
self
.
liste_unite
=
[]
#def sante(self, ):
...
...
@@ -27,4 +29,4 @@ class Base:
if
self
.
argent
-
cout
>=
0
:
self
.
argent
=
self
.
argent
-
cout
else
:
return
"NON"
\ No newline at end of file
return
"NON"
carte.py
View file @
0d298e35
...
...
@@ -428,6 +428,8 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2):
carte
.
liste_tour_1
.
append
(
Constante
.
position
)
tour
=
Tour_feu
(
Constante
.
position
,
verif_tour
)
base_1
.
liste_tour
.
append
(
tour
)
<<<<<<<
HEAD
=======
carte
.
liste_herbe_obstacle
.
append
(
Constante
.
position
)
maj_affichage_tour
(
ecran
,
base_1
.
liste_tour
,
base_2
.
liste_tour
,
herbe_finale
,
verif_tour
)
maj_affichage_argent
(
ecran
,
base_1
,
j1
)
...
...
@@ -439,10 +441,25 @@ def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2):
carte
.
liste_tour_1
.
append
(
Constante
.
position
)
tour
=
Tour_glace
(
Constante
.
position
,
verif_tour
)
base_1
.
liste_tour
.
append
(
tour
)
>>>>>>>
43
a6ccbcc5f92e1f86ed5191e4a955d9746f0a04
carte
.
liste_herbe_obstacle
.
append
(
Constante
.
position
)
maj_affichage_tour
(
ecran
,
base_1
.
liste_tour
,
base_2
.
liste_tour
,
herbe_finale
,
verif_tour
)
maj_affichage_argent
(
ecran
,
base_1
,
j1
)
<<<<<<<
HEAD
elif
(
u
,
v
)
==
(
22
,
3
):
if
verif_pose_tour
(
ecran
,
carte
,
Constante
.
position
)
==
True
:
couvrir_ecran_ennemie
(
ecran
,
verif_tour
)
if
base_1
.
depenser_argent
(
20
)
!=
"NON"
:
carte
.
liste_tour_1
.
append
(
Constante
.
position
)
tour
=
Tour_glace
(
Constante
.
position
,
verif_tour
)
base_1
.
liste_tour
.
append
(
tour
)
carte
.
liste_herbe_obstacle
.
append
(
Constante
.
position
)
maj_affichage_tour
(
ecran
,
base_1
.
liste_tour
,
base_2
.
liste_tour
,
herbe_finale
,
verif_tour
)
maj_affichage_argent
(
ecran
,
base_1
,
j1
)
=======
>>>>>>>
43
a6ccbcc5f92e1f86ed5191e4a955d9746f0a04
elif
verif_tour
==
2
:
if
(
u
,
v
)
==
(
8
,
3
):
if
verif_pose_tour
(
ecran
,
carte
,
Constante
.
position
)
==
True
:
...
...
main.py
View file @
0d298e35
...
...
@@ -45,5 +45,4 @@ ecran_principal(ecran, j_1, j_2, 1, base_joueur_1, base_joueur_2)
ecran_principal
(
ecran
,
j_1
,
j_2
,
2
,
base_joueur_1
,
base_joueur_2
)
ecran_principal
(
ecran
,
j_1
,
j_2
,
3
,
base_joueur_1
,
base_joueur_2
)
ecran_principal
(
ecran
,
j_1
,
j_2
,
3
,
base_joueur_1
,
base_joueur_2
)
\ No newline at end of file
tour.py
View file @
0d298e35
...
...
@@ -3,21 +3,29 @@
# http://pad.univ-nantes.fr/editor/p/g.KMzBqiBBATY1dYss$Ageofdefense
import
math
from
pygame
import
*
import
time
import
os
from
carteStruct
import
*
from
constante
import
Constante
from
base
import
*
from
joueur
import
*
from
tour
import
*
class
Tour
:
def
__init__
(
self
):
self
.
image
=
"img/tour.png"
# Image de la tour
self
.
degatType
=
"fire"
# Type de dégat de la tour
self
.
position
=
(
0
,
0
)
# Coordonées de la tour
self
.
portee
=
5
# Portee de la tour
self
.
degat
=
10
# Dégat de chaque projectile jeté de la tour
self
.
vitesse
=
1
# Nombre de projectile lancé par seconde
def
__init__
(
self
,
pos
,
prop
):
self
.
degatType
=
""
# Type de dégat de la tour
self
.
position
=
pos
# Coordonées de la tour
self
.
portee
=
0
# Portee de la tour
self
.
degat
=
0
# Dégat de chaque projectile jeté de la tour
self
.
vitesse
=
0
# Nombre de projectile lancé par seconde
self
.
niveau
=
0
# Niveau de la tour
self
.
proprietaire
=
0
# Propriétaire de la tour
self
.
proprietaire
=
prop
# Propriétaire de la tour
### Attaque
def
attaquerUnite
(
self
,
unite
):
print
"Attaque."
...
...
@@ -42,3 +50,42 @@ class Tour:
return
False
class
Tour_feu
(
Tour
):
def
__init__
(
self
,
pos
,
prop
):
self
.
image
=
image
.
load
(
"tour_1_avec_fond.png"
)
self
.
degatType
=
"fire"
# Type de dégat de la tour
self
.
position
=
pos
# Coordonées de la tour
self
.
portee
=
5
# Portee de la tour
self
.
degat
=
10
# Dégat de chaque projectile jeté de la tour
self
.
vitesse
=
1
# Nombre de projectile lancé par seconde
self
.
niveau
=
0
# Niveau de la tour
self
.
proprietaire
=
prop
# Propriétaire de la tour
def
afficher
(
self
,
ecran
):
tour_1_finale
=
transform
.
scale
(
self
.
image
,(
Constante
.
taille_rel
,
Constante
.
taille_rel
))
ecran
.
blit
(
tour_1_finale
,
(
self
.
position
[
0
]
*
Constante
.
taille_rel
,
self
.
position
[
1
]
*
Constante
.
taille_rel
))
class
Tour_glace
(
Tour
):
def
__init__
(
self
,
pos
,
prop
):
self
.
image
=
image
.
load
(
"tour_2_avec_fond.png"
)
self
.
degatType
=
"ice"
# Type de dégat de la tour
self
.
position
=
pos
# Coordonées de la tour
self
.
portee
=
5
# Portee de la tour
self
.
degat
=
100
# Dégat de chaque projectile jeté de la tour
self
.
vitesse
=
2
# Nombre de projectile lancé par seconde
self
.
niveau
=
0
# Niveau de la tour
self
.
proprietaire
=
prop
# Propriétaire de la tour
def
afficher
(
self
,
ecran
):
tour_2_finale
=
transform
.
scale
(
self
.
image
,(
Constante
.
taille_rel
,
Constante
.
taille_rel
))
ecran
.
blit
(
tour_2_finale
,
(
self
.
position
[
0
]
*
Constante
.
taille_rel
,
self
.
position
[
1
]
*
Constante
.
taille_rel
))
unite.py
View file @
0d298e35
...
...
@@ -13,26 +13,43 @@ from unite import *
class
Unite
:
def
__init__
(
self
,
pos
):
self
.
chemin_image
=
"milieu_soldat.png"
# Image du soldat
self
.
sante
=
50
# Santé du soldat
self
.
position
=
pos
# Position du soldat
def
__init__
(
self
,
pos
,
pro
):
self
.
chemin_image_soldat_1
=
""
# Image du soldat
self
.
chemin_image_soldat_3
=
""
self
.
chemin_image_soldat_2
=
""
self
.
chemin_image_soldat_4
=
""
self
.
chemin_image_route
=
""
self
.
numero_image
=
0
self
.
sante
=
50
# Santé du soldat
self
.
position
=
pos
self
.
vitesse
=
1
# Vitesse du soldat
self
.
proprietaire
=
0
# Propri
é
taire du soldat
self
.
violence
=
1
# Agressivit
é
qu'apporte le soldat
self
.
proprietaire
=
pro
# Propri
ét
aire du soldat
self
.
violence
=
1
# Agressivit
é
qu'apporte le soldat
self
.
prix
=
5
# Prix du soldat
self
.
liste_case
=
[]
def
modifier_vitesse
(
self
,
vit
):
self
.
vitesse
=
vit
def
afficher
(
self
,
ecran
):
res
=
image
.
load
(
self
.
chemin_image
)
im
=
transform
.
scale
(
res
,
(
Constante
.
taille_rel
,
Constante
.
taille_rel
))
ecran
.
blit
(
im
,
self
.
position
)
if
self
.
numero_image
==
1
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat
)
elif
self
.
numero_image
==
2
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_2
)
elif
self
.
numero_image
==
3
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_3
)
elif
self
.
numero_image
==
4
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_4
)
image_soldat_finale
=
transform
.
scale
(
image_soldat_initiale
,
(
Constante
.
taille_rel
,
Constante
.
taille_rel
))
ecran
.
blit
(
image_soldat_finale
,
self
.
position
)
return
### Retire de la sante
à
l'unit
é
(si elle se fait attaquer par exemple)
### Retire de la sante
à
l'unité
(
si elle se fait attaquer par exemple)
def
retirerSante
(
self
,
quantite
):
if
quantite
<
self
.
sante
:
self
.
sante
=
self
.
sante
-
quantite
...
...
@@ -47,28 +64,32 @@ class Unite:
self
.
liste_case
.
append
((
u
,
v
))
prochaineCase
=
self
.
chercherProchaineCase
(
carte
)
print
prochaineCase
prochaineCase
=
self
.
chercherProchaineCase
(
carte
)
if
prochaineCase
!=
"erreur"
:
a
=
(
prochaineCase
[
0
]
*
Constante
.
taille_rel
-
self
.
position
[
0
])
b
=
(
prochaineCase
[
1
]
*
Constante
.
taille_rel
-
self
.
position
[
1
])
print
a
,
b
if
a
!=
0
:
dx
=
(
-
1
if
a
<
0
else
1
)
dx
=
(
-
self
.
vitesse
if
a
<
0
else
self
.
vitesse
)
else
:
dx
=
0
if
b
!=
0
:
dy
=
(
-
1
if
b
<
0
else
1
)
dy
=
(
-
self
.
vitesse
if
b
<
0
else
self
.
vitesse
)
else
:
dy
=
0
print
dx
,
dy
nPos
=
(
self
.
position
[
0
]
+
dx
,
self
.
position
[
1
]
+
dy
)
if
dx
==
-
self
.
vitesse
:
self
.
numero_image
=
1
elif
dx
==
self
.
vitesse
:
self
.
numero_image
=
2
elif
dy
==
-
self
.
vitesse
:
self
.
numero_image
=
3
elif
dy
==
self
.
vitesse
:
self
.
numero_image
=
4
nPos
=
(
self
.
position
[
0
]
+
dx
,
self
.
position
[
1
]
+
dy
)
self
.
position
=
nPos
return
...
...
@@ -80,7 +101,9 @@ class Unite:
(
c
,
d
)
=
((
self
.
position
[
0
]
+
Constante
.
taille_rel
)
/
Constante
.
taille_rel
,
self
.
position
[
1
]
/
Constante
.
taille_rel
)
(
e
,
f
)
=
(
self
.
position
[
0
]
/
Constante
.
taille_rel
,
(
self
.
position
[
1
]
-
1
)
/
Constante
.
taille_rel
)
(
g
,
h
)
=
(
self
.
position
[
0
]
/
Constante
.
taille_rel
,
(
self
.
position
[
1
]
+
Constante
.
taille_rel
)
/
Constante
.
taille_rel
)
if
(
u
,
v
)
in
carte
.
liste_route
and
(
u
,
v
)
not
in
self
.
liste_case
:
return
(
u
,
v
)
if
(
a
,
b
)
in
carte
.
liste_route
and
(
a
,
b
)
not
in
self
.
liste_case
:
return
(
a
,
b
)
if
(
c
,
d
)
in
carte
.
liste_route
and
(
c
,
d
)
not
in
self
.
liste_case
:
...
...
@@ -92,11 +115,42 @@ class Unite:
else
:
return
"erreur"
class
Unite_feu
(
Unite
):
def
__init__
(
self
,
pos
,
pro
):
self
.
type
=
1
self
.
chemin_image_soldat
=
"soldat_feu.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"soldat_feu_2.png"
self
.
chemin_image_soldat_3
=
"soldat_feu_3.png"
self
.
chemin_image_soldat_4
=
"soldat_feu_4.1.png"
self
.
numero_image
=
0
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
50
# Santé du soldat
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
5
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
violence
=
1
# Agressivité qu'apporte le soldat
self
.
prix
=
5
self
.
liste_case
=
[]
class
Unite_glace
(
Unite
):
def
__init__
(
self
,
pos
,
pro
):
self
.
type
=
2
self
.
chemin_image_soldat
=
"soldat_glace.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"soldat_glace_2.png"
self
.
chemin_image_soldat_3
=
"soldat_glace_3.png"
self
.
chemin_image_soldat_4
=
"soldat_glace_4.png"
self
.
numero_image
=
0
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
50
# Santé du soldat
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
6
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
violence
=
1
# Agressivité qu'apporte le soldat
self
.
prix
=
5
self
.
liste_case
=
[]
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment