SnIPPETsX

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.