changeset 92:3a4ca250ca2e

single player fix.
author Rene Dudfield <renesd@gmail.com>
date Sun, 08 Jul 2012 15:13:47 +0200
parents c52441feb981
children f32332459fe1
files zrpn/board.py zrpn/main.py zrpn/server.py
diffstat 3 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/zrpn/board.py	Sun Jul 08 15:07:07 2012 +0200
+++ b/zrpn/board.py	Sun Jul 08 15:13:47 2012 +0200
@@ -18,6 +18,9 @@
         extra = []
         turns = 0
         animations.extend(self.apply_gravity(turns))
+
+        net_adds = []
+
         while True:
             turns += 1
             killed, ex = self.kill_groups(turns)    
@@ -28,8 +31,7 @@
                     if b == 0 and y == 0:
                         self.board[y][x] = random.randint(1, 5)
                         self.cells[y][x]= self.id_next
-                        for connection in parent.server.peers.values():
-                            connection.net_add(x,y,self.board[y][x],self.cells)
+                        net_adds.append([x,y,self.board[y][x],self.cells])
                         self.id_next+=1
                         
             animations.extend(self.apply_gravity(turns))
--- a/zrpn/main.py	Sun Jul 08 15:07:07 2012 +0200
+++ b/zrpn/main.py	Sun Jul 08 15:13:47 2012 +0200
@@ -22,7 +22,7 @@
         self.display.load_board(self.board.board, self.board.cells)
 
     def run(self):
-        animations, extra = self.board.update()
+        animations, extra, net_adds = self.board.update()
         self.display.do_animations(animations)
         while True:
             for event in pygame.event.get():
@@ -32,7 +32,7 @@
                     x, y = event.pos[0] // 24, event.pos[1] // 24
                     animations = []
                     animations.extend(self.board.kill_one((x, y)))
-                    ans, extra = self.board.update()
+                    ans, extra, net_adds = self.board.update()
                     animations.extend(ans)
                     self.display.do_animations(animations)
             self.display.frame()
--- a/zrpn/server.py	Sun Jul 08 15:07:07 2012 +0200
+++ b/zrpn/server.py	Sun Jul 08 15:13:47 2012 +0200
@@ -19,7 +19,7 @@
             return
         self.click_time = t
         animations = self.board.kill_one(packet)
-        ans, extra = self.board.update()
+        ans, extra, net_adds = self.board.update()
         animations.extend(ans)
         #TODO: scoring.   check for animations of kind == 'collumn_row'
 
@@ -33,8 +33,13 @@
 
         for connection in self.server.peers.values():
             connection.net_animations(animations)
+
+            for net_add in net_adds:
+                connection.net_add(net_add)
+
             connection.net_score(self.scores[connection._receivers[0]], max(self.scores.values()))
 
+
     def on_connect(self):
         self.connection.net_init(self.board.board, self.board.cells)
         self.scores[self] = 0