SnIPPETsX › def distance(x1, y1, z1, x2, y2, z2)
def distance(x1, y1, z1, x2, y2, z2)
Python · updated Oct 14, 2026 · 68 lines
main.js
from math import sqrt
def distance(x1, y1, z1, x2, y2, z2):
return sqrt((x1 - x2)**2 + (y1 - y2)**2 + (z1 - z2)**2)
class Player:
def __init__(self, nom, x, y, z, degats=3, hp=20):
## NE PAS MODIFIER
self.nom = nom
self.x, self.y, self.z = x, y, z
self.degats = degats
self.hp = hp
## Méthodes à compléter :
def estVivant(self):
if self.hp > 0:
return True
else:
return False
def avanceX(self, n):
if self.estVivant():
self.x += n
def avanceY(self, n):
if self.estVivant():
self.y += n
def avanceZ(self, n):
if self.estVivant():
self.z += n
def attaque(self, adversaire):
## C'est la méthode la plus dure
if not self.estVivant() or not adversaire.estVivant():
return False
if distance(self.x, self.y, self.z, adversaire.x, adversaire.y, adversaire.z) >= 3:
return False
adversaire.hp -= self.degats
return True
noone_75 = Player("noone_75", 2, 4, 5)
steve = Player("Steve", 0, 0, 0, 10, 1) # Steve est à (0,0,0), fait 10 de dégâts, mais n'a qu'1 point de vie
zombie = Player("zombie",0,0,0,0,0 )
print(zombie.estVivant())
print(steve.estVivant())
assert noone_75.attaque(steve) == False
steve.avanceZ(5)
steve.avanceY(3)
assert steve.attaque(noone_75) == True
assert noone_75.estVivant() == True
assert noone_75.attaque(steve) == True
steve.estVivant()
Run this Python snippet
Open this snippet on SnIPPETsX to run the Python code in your browser, edit it together with others in real time, or fork it into your own copy. No install or account is needed.