"""Game constants shared between client and server.""" # Network settings DEFAULT_HOST = "0.0.0.0" # Listen on all interfaces for multiplayer DEFAULT_PORT = 8888 DEFAULT_WS_PORT = 8889 DEFAULT_HTTP_PORT = 8000 # Multicast discovery settings MULTICAST_GROUP = "239.255.0.1" MULTICAST_PORT = 9999 DISCOVERY_TIMEOUT = 3.0 # seconds to wait for server responses BEACON_INTERVAL = 2.0 # how often server announces itself # Game grid settings GRID_WIDTH = 40 GRID_HEIGHT = 30 CELL_SIZE = 20 # pixels # Game timing TICK_RATE = 0.1 # seconds (10 ticks per second) FPS = 60 # client rendering FPS # Game rules INITIAL_SNAKE_LENGTH = 3 SNAKE_GROWTH = 1 # segments to grow when eating food # Colors (RGB) COLOR_BACKGROUND = (0, 0, 0) COLOR_GRID = (40, 40, 40) COLOR_FOOD = (255, 0, 0) COLOR_SNAKES = [ (0, 255, 0), # Green - Player 1 (0, 0, 255), # Blue - Player 2 (255, 255, 0), # Yellow - Player 3 (255, 0, 255), # Magenta - Player 4 ] # Directions UP = (0, -1) DOWN = (0, 1) LEFT = (-1, 0) RIGHT = (1, 0) OPPOSITE_DIRECTIONS = { UP: DOWN, DOWN: UP, LEFT: RIGHT, RIGHT: LEFT, }