from Tkinter import *

LGC = 40 # une case fait 40*40 pixels

class Joueur:
	def __init__(self, nom="inconnu", energie=15, nbvies=4):
		self.nom = nom
		self.energie = energie
		self.nbvies = nbvies

	def decr_vie(self):
		self.nbvie = self.nbvie-1
		if self.nbvie == 0:
			return "fin"
		else:
			return "cont"

	def decr_energie(self, n=1):
		self.energie = self.energie-n
		if self.energie == 0:
			return "m"
		else:
			return "v"

	def incr_energie(self, n=1):
		if self.energie+n >= 15:
			self.energie = 15
		else:
			self.energie = self.energie+n


class Serpent:
	def __init__(self, tete, imtete, dir, motif):
		self.tete = tete
		self.imtete = imtete
		self.dir = dir
		self.motif = "red"
		if dir == "Right":
			self.dirinterdite = "Left"
		elif dir == "Left":
			self.dirinterdite = "Right"
		elif dir == "Up":
			self.dirinterdite = "Down"
		else:
			self.dirinterdite = "Up"

	def change_dir(self,evt):
		if evt.keysym in set(["Left", "Right", "Down", "Up"]) - set([self.dirinterdite]):
			self.dir = evt.keysym

	def avancer(self):
		x,y, = self.tete
		if self.dir == "Up":
			self.tete = [x,y-1]
			self.dirinterdite = "Down"
		elif self.dir == "Down":
			self.tete = [x,y+1]
			self.dirinterdite = "Up"
		elif self.dir == "Right":
			self.tete = [x+1,y]
			self.dirinterdite = "Left"
		else:
			self.tete = [x-1,y]
			self.dirinterdite = "Right"

	def affiche_init(self, princ):
		global LGC
		x,y = self.tete
		self.imtete = princ.create_oval(x*LGC,y*LGC,(x+1)*LGC,(y+1)*LGC,fill="red")

	def reafficher(self, princ):
		global LGC
		x,y = self.tete
		im = self.imtete
		princ.coords(im,x*LGC,y*LGC,(x+1)*LGC,(y+1)*LGC)

	def effacer():
		#necessaire?
		pass

	def est_mort():
		# tete sur une case vide?
		pass
