Mercurial > zrpn
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
