Skip to content

Commit 80d0fd1

Browse files
author
grant100
committed
Game end detection
1 parent 726805d commit 80d0fd1

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

Board.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,10 @@ def checkPointsCollision(self,_x,_y):
9494
if _y < 0:
9595
_failed['bottom'] = True
9696
else:
97-
if _y > 7:
97+
if _y > 6:
9898
_failed['top'] = True
99+
# if _v > 0:
100+
# _failed['other'] = True
99101
elif _x > 7 or _x < 0:
100102
_failed['side'] = True
101103
else:

Main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
class Observer():
77
def __init__(self):
88
self.exit = False;
9-
self.shapesWrapper = ShapesWrapper();
9+
self.shapesWrapper = ShapesWrapper(self);
1010
self.user = User(self);
1111
self.bodyCollision=False
1212
def end(self):
13+
print 'exiting ...'
1314
self.user.exit = True;
1415
self.shapesWrapper.exit = True;
1516
os.system('stty sane');

Shapes.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,29 +53,26 @@ def rotate(self):
5353
i+=1
5454
if not _failed:
5555
self.points =_shape;
56-
self.drawShiftRotate()
56+
self.drawShiftRotate()
5757
# return _shape;
5858

5959
def shiftDecisionDown(self, _data, shapeWrapper):
6060
_points = _data[0]
6161
_origin = _data[1]
6262
_failed = _data[2]
63-
if not _failed[0] and not _failed[1]:
63+
if _failed[2]:
64+
shapeWrapper.observer.end()
65+
elif not _failed[0] and not _failed[1]:
6466
self.origin = _origin
6567
self.points = _points
6668
shapeWrapper.shiftIndex+=1
6769
if shapeWrapper.shiftIndex > 7:
68-
# print 'weird scenario...' + str(shapeWrapper.shiftIndex)
6970
self.board.freeze(self)
7071
self.drawShiftRotate()
71-
# elif _failed['other']:
72-
# self.board.freeze(self)
73-
# shapeWrappe.shiftIndex=9
74-
# el
7572
else:
73+
print _points
7674
self.board.freeze(self)
7775
shapeWrapper.shiftIndex=9 #? trigger new object on next pass
78-
# self.drawShiftRotate()
7976

8077
def shiftDecision(self, _data, shapeWrapper):
8178
_points = _data[0]
@@ -95,21 +92,24 @@ def detectDownCollision(self):
9592
_orig = [self.origin[0],self.origin[1]-1]
9693
_temp = []
9794
# _failed = False
98-
_failed = [False,False]#{bottom:False,other:False}
99-
for j in _points: #contains origin
95+
_failed = [False,False,False]#{bottom:False,other:False}
96+
_top = False
97+
_other = False
98+
for j in _points: #contains origin
10099
_x = _points[i][0]
101100
_y = _points[i][1] -1
102101
_v = self.board.checkPointsCollision(_x,_y)
103102
if _v['bottom']:
104103
_failed[0] = True
105-
# if _v['top']:
106-
# _failed['top'] = True
107104
if _v['other']:
108105
_failed[1] = True
109-
106+
_other = True
107+
if _v['top']:
108+
_top = True
110109
_temp.insert(i,[_x,_y])
111110
i+=1
112-
self.autoDownShift = True #enable down shift increment check
111+
if _other and _top:
112+
_failed[2] = True
113113
return [_temp,_orig,_failed]
114114
def detectLeftCollision(self):
115115
i = 0

ShapesWrapper.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@
1111
import time
1212

1313
class ShapesWrapper():
14-
def __init__(self):
14+
def __init__(self, observer):
1515
self.shiftIndex = 0
1616
self.shape = []
1717
self.board = Board()
1818
self.getNewObject()
1919
self.exit = False
20+
self.observer = observer
2021

2122
def getNewObject(self):
2223
val = randint(0,6);

0 commit comments

Comments
 (0)