-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcell.py
More file actions
64 lines (51 loc) · 1.61 KB
/
cell.py
File metadata and controls
64 lines (51 loc) · 1.61 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from graphics import Line
class Cell:
def __init__(self, win=None):
self.has_left_wall = True
self.has_right_wall = True
self.has_top_wall = True
self.has_bottom_wall = True
self._x1 = None
self._x2 = None
self._y1 = None
self._y2 = None
self._win = win
self.visited = False
def draw(self, x1, y1, x2, y2):
fill = "black"
unfill = "#d9d9d9"
self._x1 = x1
self._x2 = x2
self._y1 = y1
self._y2 = y2
if not self._win:
return
line = Line(x1,y1,x1,y2)
if self.has_left_wall:
self._win.draw_line(line, fill)
else:
self._win.draw_line(line, unfill)
line = Line(x2,y1,x2,y2)
if self.has_right_wall:
self._win.draw_line(line, fill)
else:
self._win.draw_line(line, unfill)
line = Line(x1,y1,x2,y1)
if self.has_top_wall:
self._win.draw_line(line, fill)
else:
self._win.draw_line(line, unfill)
line = Line(x1,y2,x2,y2)
if self.has_bottom_wall:
self._win.draw_line(line, fill)
else:
self._win.draw_line(line, unfill)
def draw_move(self, to_cell, undo = False):
if not self._win:
raise ValueError("Can't draw")
if undo == False:
fill = "grey"
else:
fill = "red"
line = Line((self._x1+self._x2)/2, (self._y1+self._y2)/2, (to_cell._x1+to_cell._x2)/2, (to_cell._y1+to_cell._y2)/2)
self._win.draw_line(line, fill)