1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| class ConsoleWindowRenderer(IWindowRenderer):
def __init__(self,width,height,fps = 10):
#IWindowRenderer.Iwindowrenderer.__init__(self)
self.__width = width
self.__height = height
self.__fps = fps
self.__buffer = []
for x in range(self.__width):
# lorsque l'indice 1 commence, il va ajouter une liste dans le buffer qui est une liste, puis il va ajouter à cette liste le caractère qui est append en fonction de l'indice.
self.__buffer.append([])
for y in range(self.__height):
self.__buffer[x].append(" ")
def drawCircle(self,x,y,r,fill,borderFill = '', borderThick = 0):
"Méthode qui dessine un cercle avec x et y qui sont les positions du centre du cercle en int et r qui est le radius du cercle en int et fill qui sera tout le cercle a completer en str"
#pour toutes les valeurs de i de 1 à 2*PI avec un petit pas de 0.1.
for i in np.arange(1,2*math.pi,0.01):
# vu que cos renvoie une valeur entre -1 et 1, on additionne le rayon au rayon pour que si il y a une valeur négative renvoyer ça n'écrive pas dans une case négative du tableau qui n'existe pas
x = round(r+r * math.cos(i))
y = round(r+r * math.sin(i))
# J'ajoute le point qui est égal à x et y au moment de la boucle
self.__buffer[x][y] = fill
def drawRectangle(self,x,y,w,h,fill,borderFill = '', borderThick = 0):
for i in range(w):
for j in range(h):
self.__buffer[x+i][y+j] = fill
def render(self):
for j in range(self.__height):
for i in range(self.__width):
print(self.__buffer[i][j], end = ' ')
print(' ')
time.sleep(1/self.__fps)
def clear(self):
for x in range(self.__width):
for y in range(self.__height):
self.__buffer[x][y] = ' '
def getBuffer(self):
return self.__buffer |
Partager