X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=server.py;h=a3fa8e43eeb7c6a2ade762812e0caab8c9aa3e20;hb=31831b9e6147a89b20a97a52f4fe5e01acc283d0;hp=f4e29015aa9d7e4ed82abb68aac6dcbf321dbdf6;hpb=867b39dd4cf6bb0ce4bead991f93a3900fdf6fcc;p=plomrogue2-experiments diff --git a/server.py b/server.py index f4e2901..a3fa8e4 100755 --- a/server.py +++ b/server.py @@ -81,6 +81,9 @@ class IO_Handler(socketserver.BaseRequestHandler): class World: turn = 0 + map_size = (5, 5) + map_ = 'xxxxx\nx...x\nx.X.x\nx...x\nxxxxx' + player_pos = (3, 3) def fib(n): @@ -132,7 +135,7 @@ class CommandHandler: self.send_to(connection_id, reply) def cmd_inc(self, connection_id): - """Increment world.turn, send TURN_FINISHED, NEW_TURN to everyone. + """Increment world.turn, send game turn data to everyone. To simulate game processing waiting times, a one second delay between TURN_FINISHED and NEW_TURN occurs; after NEW_TURN, some expensive @@ -140,13 +143,20 @@ class CommandHandler: until a further INC finishes the turn. """ from time import sleep + + def stringify_yx(tuple_): + return 'Y:' + str(tuple_[0]) + ',X:' + str(tuple_[1]) + if self.pool_result is not None: self.pool_result.wait() self.send_all('TURN_FINISHED ' + str(self.world.turn)) sleep(1) self.world.turn += 1 self.send_all('NEW_TURN ' + str(self.world.turn)) - self.pool_result = self.pool.map_async(fib, (35,35)) + self.send_all('MAP_SIZE ' + stringify_yx(self.world.map_size)) + self.send_all('TERRAIN\n' + self.world.map_) + self.send_all('POSITION ' + stringify_yx(self.world.player_pos)) + self.pool_result = self.pool.map_async(fib, (35, 35)) def cmd_get_turn(self, connection_id): """Send world.turn to caller."""