FRstudy.me offre une plateforme conviviale pour trouver et partager des connaissances. Posez n'importe quelle question et recevez des réponses rapides et bien informées de notre réseau de professionnels expérimentés.
Bonjour, je dois coder un snake en python en programmation orientée objet sur une carte microbit (petite carte avec un affichage led 5x5 et un acceleromètre qui détecte l'orientation de la carte).
J'ai un dernier problème qui fait que mon code ne fonctionne pas : le serpent avance, mais les leds sur lesquelles il est passé ne s'éteigne pas apres son passage. Pourriez vous m'aider ? voici mon code jusqu'à présent :
from microbit import * from random import randint
class Cellule: def __init__(self, v, s=None): """ Constructeur d'une cellule.
Parametres ---------- v: type indéfini s: None ou Cellule
Attributs --------- valeur: contenu de la cellule. suivante : cellule suivante ou None.
""" self.valeur = v self.suivante = s
def appartient(self, x): """Teste si x appartient à la cellule.""" courante = self while courante.suivante is not None: if courante.valeur == x: return True courante = courante.suivante if courante.valeur == x: return True else: return False
def get_valeur(self): """Renvoie la valeur contenue dans la cellule.""" return self.valeur
def get_suivante(self): """Renvoie la cellule suivante.""" return self.suivante
def defile(self): if self.l==0: raise Exception('Le corps est vide.') if self.l==1: self.corps==None self.l-=1 else: courante = self.corps while courante.suivante.suivante is not None: courante=courante.suivante courante.suivante.valeur=None self.l-=1
def appartient(self,p): if self.l==0: raise Exception('Le corps est vide.') if self.l>=1: return self.corps.appartient(p)
def tourne(self,d_x,d_y): if (self.d==(0,-1) or self.d==(0,1)) and d_x>self.sensi: self.d=(1,0) if (self.d==(0,-1) or self.d==(0,1)) and d_x<-self.sensi: self.d=(-1,0)
if (self.d==(1,0) or self.d==(-1,0)) and d_y>self.sensi: self.d=(0,1) if (self.d==(1,0) or self.d==(-1,0)) and d_y<-self.sensi: self.d=(0,-1)
def avance(self): if self.addition()==Serpent.pomme : self.enfile(self.addition()) pommex=randint(0,4) pommey=randint(0,4) while self.corps.appartient((pommex,pommey))==True: pommex=randint(0,4) pommey=randint(0,4) Serpent.pomme=(pommex,pommey) return True if self.corps.appartient(self.addition()): return False if (self.addition()[0]<0 or self.addition()[1]<0) or (self.addition()[0]>4 or self.addition()[1]>4): return False if 0<=self.addition()[0]<=4 and 0<=self.addition()[1]<=4: self.enfile(self.addition()) self.defile() return True
def affiche(x): courante = x.corps while courante.suivante is not None: display.set_pixel(courante.get_valeur()[0], courante.get_valeur()[1], 5) courante=courante.suivante Pomme = display.set_pixel(Serpent.pomme[0], Serpent.pomme[1], 9)
while True: snake = Serpent() jeu = True while jeu==True: if affiche(snake)==True and snake.avance()==True:
Merci d'utiliser cette plateforme pour partager et apprendre. Continuez à poser des questions et à répondre. Nous apprécions chaque contribution que vous faites. Pour des réponses de qualité, visitez FRstudy.me. Merci et revenez souvent pour des mises à jour.