Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2013-05-07 02:54:38 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2013-05-07 02:54:38 (GMT)
commit4c9f7a1d7fb364780f75523e70e450cf299f9508 (patch)
tree70c3635579dee76a9dbe936111a9429220fc4327
parent8f42beaccd85544cfeb9f42e302a07bc12095d30 (diff)
only one line draw
-rwxr-xr-xmain.py69
1 files changed, 53 insertions, 16 deletions
diff --git a/main.py b/main.py
index 38d2916..386a1b3 100755
--- a/main.py
+++ b/main.py
@@ -15,6 +15,14 @@ T = 15
COLOR1 = (255, 0, 0)
COLOR2 = (0, 0, 255)
+class box:
+
+ def __init__(self):
+ self.up = 0
+ self.left = 0
+ self.right = 0
+ self.down = 0
+
class Game:
def __init__(self, parent=None):
@@ -22,6 +30,7 @@ class Game:
self.horizontal = []
self.vertical = []
+ self.boxes = []
self.x_end = 0
self.y_end = 0
self.screen = pygame.display.set_mode((900, 700))
@@ -40,18 +49,22 @@ class Game:
for i in range(w):
x = i * BOX_SIZE[0] + X_OFFSET
self.horizontal.append(x)
+ v_boxes = []
for j in range(h):
y = j * BOX_SIZE[1] + Y_OFFSET
if i == 0:
self.vertical.append(y)
-
+ if j > 0:
+ v_boxes.append(box())
pygame.draw.circle(self.screen, (0, 0, 0), (x, y), 5, 5)
-
+ if i > 0:
+ self.boxes.append(v_boxes)
self.x_end = (len(self.horizontal) - 1) * BOX_SIZE[0] + X_OFFSET
self.y_end = (len(self.vertical) - 1) * BOX_SIZE[1] + Y_OFFSET
print self.horizontal
print self.vertical
+ print len(self.boxes)
def where_x(self, x):
for i in range(len(self.horizontal)):
@@ -59,8 +72,8 @@ class Game:
x1 = self.horizontal[i - 1]
x2 = self.horizontal[i]
if x >= x1 and x <= x2:
- return x1, x2
- return False
+ return (x1, x2, i)
+ return (False, False, 0)
def where_y(self, y):
for j in range(len(self.vertical)):
@@ -68,36 +81,60 @@ class Game:
y1 = self.vertical[j - 1]
y2 = self.vertical[j]
if y >= y1 and y <= y2:
- return y1, y2
- return False
+ return (y1, y2, j)
+ return (False, False, 0)
def where(self, pos):
x, y = pos
r1 = self.where_x(x)
r2 = self.where_y(y)
- if not(r1 == False):
- if not(r2 == False):
+ if not(r1[0] == False):
+ if not(r2[0] == False):
if x < (r1[0] + T):
- #print 'cerca de', r1[0]
+ print 'lado izquierdo'
+ x_b = r1[2] - 1
+ y_b = r2[2] - 1
+ b = self.boxes[x_b][y_b]
+ if b.left:
+ print 'hay linea'
+ return
+ b.left = 1
+ print 'box', x_b, y_b, b.up, b.left, b.right, b.down
+ if x_b > 0:
+ b2 = self.boxes[x_b - 1][y_b]
+ b2.right = 1
+ print 'box', x_b - 1, y_b, b2.up, b2.left, b2.right, b2.down
pygame.draw.line(self.screen, COLOR1, (r1[0],r2[0]), (r1[0],r2[1]), 5)
return
elif x > (r1[1] - T):
- #print 'cerca de', r1[1]
+ print 'lado derecho'
+ x_b = r1[2] - 1
+ y_b = r2[2] - 1
+ b = self.boxes[x_b][y_b]
+ if b.right:
+ print 'hay linea'
+ return
+ b.right = 1
+ print 'box', x_b, y_b, b.up, b.left, b.right, b.down
+ if x_b < GRID_SIZE[1]:
+ b2 = self.boxes[x_b + 1][y_b]
+ b2.left = 1
+ print 'box', x_b - 1, y_b, b2.up, b2.left, b2.right, b2.down
pygame.draw.line(self.screen, COLOR1, (r1[1],r2[0]), (r1[1],r2[1]), 5)
return
else:
if (x > (X_OFFSET - T)) and (x < X_OFFSET):
- if not(r2 == False):
+ if not(r2[0] == False):
pygame.draw.line(self.screen, COLOR1, (X_OFFSET,r2[0]), (X_OFFSET,r2[1]), 5)
return
elif (x < (self.x_end + T)) and (x > self.x_end):
- if not(r2 == False):
+ if not(r2[0] == False):
pygame.draw.line(self.screen, COLOR1, (self.x_end,r2[0]), (self.x_end,r2[1]), 5)
return
- if not(r2 == False):
- if not(r1 == False):
+ if not(r2[0] == False):
+ if not(r1[0] == False):
if y < (r2[0] + T):
#print 'aloja', r2[0]
pygame.draw.line(self.screen, COLOR2, (r1[0],r2[0]), (r1[1],r2[0]), 5)
@@ -108,11 +145,11 @@ class Game:
return
else:
if (y > Y_OFFSET - T) and (y < Y_OFFSET):
- if not(r1 == False):
+ if not(r1[0] == False):
pygame.draw.line(self.screen, COLOR2, (r1[0],Y_OFFSET), (r1[1],Y_OFFSET), 5)
return
elif (y < (self.y_end + T)) and (y > self.y_end):
- if not(r1 == False):
+ if not(r1[0] == False):
pygame.draw.line(self.screen, COLOR2, (r1[0],self.y_end), (r1[1],self.y_end), 5)
return