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 | #!/usr/bin/env python3
# -*- coding: utf-8 -*-
import random
class Vivant():
def __init__(self):
super(Vivant, self).__init__()
self.vie = 10
def variation_vie(self, variation):
#Augmente la vitalité d'une valeur = à 'variation'
self.vie += variation
class Poisson(Vivant):
def __init__(self,nom,sexe,regime,race):
super(Poisson, self).__init__()
self.nom = nom
self.sexe = sexe
self.regime = regime
self.race = race
class Algue(Vivant):
def __init__(self):
super(Algue, self).__init__()
class Aquarium():
def __init__(self):
super(Aquarium, self).__init__()
self.compte_tour = 0
self.liste_poisson = [] ## Crée une liste vide pour contenir les poissons
self.liste_algue = [] ##Crée une liste vide pour contenir les algues
self.ajout_poisson('Alpha','mâle','carnivore') ## Crée un premier poisson dans l'aquarium
self.ajout_algue()
def ajout_poisson(self, nom, sexe,regime, race ='inconnu'):
"""Fonction pour ajouter un poisson et l'ajouter à la liste"""
self.nom=nom
self.sexe=sexe
self.regime=regime
self.race=race
self.liste_poisson.append(Poisson(self.nom, self.sexe, self.regime, self.race))
def ajout_algue(self):
"""Fonction pour ajouter une algue dans l'aquarium et dans une liste"""
self.liste_algue.append(Algue())
def manger(self):
"""Simule l'action de manger pour les poissons"""
print ('############################################')
print ('Journal des actions: ')
for self.mangeur in self.liste_poisson:
print()
print ('Mangeur : ',self.mangeur.nom,self. mangeur.vie, self.mangeur.race)
if self.mangeur.regime == 'carnivore':
self.victime = random.choice(self.liste_poisson)
print ('Victime : ',self.victime.nom, self.victime.vie, self.victime.race)
if self.victime.race !=self.mangeur.race:
self.victime.variation_vie(-4)
self.mangeur.variation_vie(5)
if self.victime.vie <= 0:
print (self.victime.nom, ' est mort !')
self.liste_poisson.remove(self.victime)
del self.victime
else:
print ('ne se mange pas lui-meme')
print ('ou ne mange pas un poisson de la meme espèce!')
if self.mangeur.regime == 'herbivore':
self.victime = random.choice(self.liste_algue)
print ('Algue Victime : ',id(self.victime))
self.victime.variation_vie(-2)
self.mangeur.variation_vie(3)
if self.victime.vie <= 0:
print ('Une algue est morte !')
self.liste_algue.remove(self.victime)
del self.victime
def tour(self):
""" Fonction qui gére chaque tour """
self.affichage()
if input ('Un autre tour ? (o/n) ') == 'o':
self.compte_tour += 1
self.vie_algues = 0
for ref in (self.liste_poisson): #Calcul de de la nouvelle vitalité pour chaque poisson
ref.variation_vie(-1)
# print(ref.nom,ref.sexe, ref.vie)
for ref in (self.liste_algue): #Calcul de la nouvelle vitalité pour les algues
ref.variation_vie(1)
self.manger()
# print(ref.nom,ref.sexe, ref.vie)
self.tour()
else:
print ('arret')
def affichage(self):
print()
print ('############################################')
print ('Tour n° ', self.compte_tour )
print()
print ('--- Liste des poissons : (nom/sexe/vitalité/régime/race) ---')
for ref in (aqua1.liste_poisson):
print(ref.nom,ref.sexe, ref.vie, ref.regime,ref.race)
print()
print ('--- Nombre d\'algues : ', len(self.liste_algue),' ---')
for ref in (aqua1.liste_algue):
print('- vitalité : ', ref.vie)
print()
class Merou(Poisson):
race = 'Mérou'
def __init__(self,nom,sexe,regime):
super(Merou).__init__()
self.nom = nom
self.sexe = sexe
self.regime = regime
aqua1.ajout_poisson(self.nom, self.sexe, self.regime, self.race)
aqua1=Aquarium()
#aqua1.ajout_poisson('Béta','femelle','herbivore')
aqua1.ajout_poisson('Gamma','femelle','herbivore')
aqua1.ajout_poisson('Delta','femelle','carnivore')
merou1=Merou('Mon Mérou','mâle', 'carnivore')
aqua1.ajout_algue()
aqua1.tour()
|