Esempio n. 1
0
import socketserver
import pickle
from collections import namedtuple

from enums import MessageEnum, MOVE_SIZE
from game import Board, Player

BOARD_BOUNDS = (1000, 1000)

Message = namedtuple('Message', ['type', 'data'])

board = Board(bounds=BOARD_BOUNDS)
board.fill_cells((BOARD_BOUNDS[0] + BOARD_BOUNDS[1]) // 4)
clients = {}


class UDPHandler(socketserver.BaseRequestHandler):
    def send_data(self, data):
        socket = self.request[1]
        socket.sendto(pickle.dumps(data), self.client_address)

    def get_message(self):
        raw_message = pickle.loads(self.request[0])
        return Message(raw_message['type'], raw_message.get('data'))

    def handle(self):
        global clients
        global board

        message = self.get_message()
        if message.type == MessageEnum.CONNECT: