◂ 14 décembre 2015 ▸
Reindeer Olympics :
- code.py
- codeObjets.py
class Renne:
positionPremier = 0
premiers = []
def __init__(self, nom, vitesse, tempsCourse, tempsRepos):
self.nom = nom
self.vitesse = vitesse
self.tempsCourse = tempsCourse
self.tempsRepos = tempsRepos
self.position = 0
self.enCourse = True
self.tempsActivite = 0
self.score = 0
def avancerUneSeconde(self):
self.tempsActivite += 1
if self.enCourse:
self.position += self.vitesse
if self.position >= Renne.positionPremier:
if self.position > Renne.positionPremier:
Renne.positionPremier = self.position
Renne.premiers = [self]
else:
Renne.premiers.append(self)
if self.tempsActivite >= self.tempsCourse:
self.enCourse = False
self.tempsActivite = 0
else:
if self.tempsActivite >= self.tempsRepos:
self.enCourse = True
self.tempsActivite = 0
def getPosition(self):
return self.position
def givePoint(self):
self.score += 1
def getScore(self):
return self.score
def __repr__(self):
return self.nom + " en pos " + str(self.position) + " avec " + str(self.score) + " pt" + (self.score > 1 and 's' or '')
N = 2503
input = [
['Rudolph', 22, 8, 165],
['Cupid', 8, 17, 114],
['Prancer', 18, 6, 103],
['Donner', 25, 6, 145],
['Dasher', 11, 12, 125],
['Comet', 21, 6, 121],
['Blitzen', 18, 3, 50],
['Vixen', 20, 4, 75],
['Dancer', 7, 20, 119],
]
rennes = []
for renne in input:
rennes.append(Renne(*renne))
for second in range(N):
for renne in rennes:
renne.avancerUneSeconde()
for renne in Renne.premiers:
renne.givePoint()
# print(rennes)
rennes.sort(key=Renne.getPosition, reverse=True)
print("Partie 1: " + str(rennes[0]) + " => " + str(rennes[0].getPosition()))
rennes.sort(key=Renne.getScore, reverse=True)
print("Partie 2: " + str(rennes[0]) + " => " + str(rennes[0].getScore()))