Étape 1 : Création d'une grille
Les deux fonctions principales de Processing
La fonction setup()
Permet d'initialiser le programme, comme la fenêtre d'affichage
La fonction draw()
Permet d'afficher la fenêtre, cette fonction s'exécute par défaut 60 fois par seconde
À faire : Écrire et exécuter le code suivant
Ce code affiche une fenêtre de
pixels avec un fond gris foncé.
def setup():
size(600,400)
def draw():
background(51)
Méthode : La grille
On va créer une grille de dimensions
à partir de cases.
Chaque case est repérée par des coordonnées (abscisse : n° de colonne ; ordonnée : n° de ligne).
(pour que l'origine et les coordonnées correspondent à l'environnement Processing)
Chaque case possède un indice (un numéro).
Chaque case possède 4 murs.
Chaque case est de même dimension (
),
On dispose d'une formule pour passer des coordonnées à l'indice de la case.
Ces cases seront stockées dans une liste grid
, ainsi grid[17]
correspondra à la case de coordonnées
On crée une classe Cell (pour nos cases )
On crée une classe dans un nouvel onglet de Processing.
(cela crée un fichier cell.py dans le même dossier que maze_generator)
# coding=utf-8 (nécessaire dans Processing)
class Cell:
def __init__(self,j,i,w=30):
self.i=i
self.j=j
self.w=w
self.walls=[True,True,True,True]
def highlight(self):
'''
'''
x=self.i*self.w
y=self.j*self.w
w=self.w
noStroke()
fill(0,0,255,100)
rect(x,y,w,w)
def show(self):
'''
'''
x=self.i*self.w
y=self.j*self.w
w=self.w
stroke(255)
if self.walls[0]:
line(x,y,x+w,y)
if self.walls[1]:
line(x+w,y,x+w,y+w)
if self.walls[2]:
line(x+w,y+w,x,y+w)
if self.walls[3]:
line(x,y+w,x,y)
Puis on crée la grille dans le setup()
en on fait afficher le tout dans le draw()
from cell import Cell
w=40
grid=[]
def setup():
'''
initialisation
'''
size(610,410)
global cols,rows # déclarées comme globales
cols=width//w
rows=height//w
# création du tableau
for j in range(rows):
for i in range(cols):
cell=Cell(j,i,w)
grid.append(cell)
def draw():
background(51)
for i in range(len(grid)):
grid[i].show()
grid[26].highlight()
À faire : Écrire ce code, vous devez obtenir une grille avec une case en bleu.
Expliquer pourquoi cette case est en bleu, vous commenterez les méthodes de la classe Cell