You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
3.2 KiB
81 lines
3.2 KiB
from random import randint
|
|
from time import sleep
|
|
from tkinter import *
|
|
|
|
class Serpent:
|
|
def __init__ (self,col,ligne,direction):
|
|
"""La colonne est l'indice dand la première liste de la grille
|
|
La ligne est son indice dans la grille
|
|
La direction est le sens vers lequel le serpent va 0=droite, 1=haut, 2=gauche, 3=bas"""
|
|
self.col=col
|
|
self.ligne=ligne
|
|
self.direction=direction
|
|
|
|
def bouge(self):
|
|
"""Déplace le serpent dans le tableau tout les x temps """
|
|
pass
|
|
|
|
class Pomme:
|
|
def __init__ (self,uncol,unligne):
|
|
"""La colonne est l'indice dand la première liste de la grille
|
|
La ligne est son indice dans la grille"""
|
|
self.col=uncol
|
|
self.ligne=unligne
|
|
|
|
|
|
class Grille:
|
|
def __init__ (self,unnb_col,unnb_ligne,uncanva,unfenetre):
|
|
self.nb_col=unnb_col
|
|
self.nb_ligne=unnb_ligne
|
|
self.can=uncanva
|
|
self.fen=unfenetre
|
|
self.grille=[]
|
|
for ligne in range(0,self.nb_ligne):
|
|
self.grille.append([])
|
|
for colonne in range(0,self.nb_col):
|
|
self.grille[ligne].append(0)
|
|
|
|
###############création_lst_carré##########
|
|
self.lst_c=[]
|
|
for ligne in range(len(self.grille)):
|
|
self.lst_c.append([])
|
|
####Choix de la taille la plus grande pour les carré sans qu'ils dépassent########
|
|
carre_col, carre_ligne= 800//self.nb_col, 800//self.nb_ligne
|
|
|
|
if carre_col<carre_ligne:
|
|
self.taille_carre=carre_col
|
|
else:
|
|
self.taille_carre=carre_ligne
|
|
|
|
###############création_carré##########
|
|
for ligne in range(len(self.grille)):
|
|
for colone in range(len(self.grille[0])):
|
|
if self.grille [ligne][colone] == 1:#1=sepent
|
|
new_c=self.can.create_rectangle( colone *self.taille_carre , ligne *self.taille_carre ,
|
|
colone*self.taille_carre+self.taille_carre , ligne*self.taille_carre +self.taille_carre ,
|
|
fill ="green")
|
|
self.lst_c[ligne].append(new_c)
|
|
else:
|
|
new_c=self.can.create_rectangle( colone *self.taille_carre , ligne *self.taille_carre ,
|
|
colone*self.taille_carre+self.taille_carre , ligne*self.taille_carre +self.taille_carre ,
|
|
fill ="white")
|
|
self.lst_c[ligne].append(new_c)
|
|
|
|
self.apple=Pomme(9,7)
|
|
self.can.itemconfig(self.lst_c[7][10],fill="red")
|
|
def joueur(self,uncol,unligne,undirection):
|
|
"""Crée un joueur à partir des paramètre de la class serpent"""
|
|
self.player=Serpent(uncol,unligne,undirection)
|
|
self.can.itemconfig(self.lst_c[unligne][uncol],fill="green")
|
|
|
|
|
|
##########Programme principale##############
|
|
fenetre = Tk()
|
|
fenetre.title("Snake")
|
|
zone = Canvas(fenetre , height =800 , width =800 , bg="#ffffff")
|
|
zone.grid(row=1,column=1,rowspan=1,columnspan=9)
|
|
|
|
grille=Grille(15,15,
|
|
zone,fenetre)
|
|
grille.joueur(3,7,0)
|
|
fenetre.mainloop()
|