"""Color and theme management.""" import curses from dataclasses import dataclass from typing import Dict @dataclass class ColorPair: """Represents a color pair.""" name: str foreground: int background: int pair_id: int class ThemeManager: """Manages colors and themes for the game.""" def __init__(self): self.colors: Dict[str, int] = {} self.color_pairs: Dict[str, ColorPair] = {} def initialize(self, stdscr) -> None: """Initialize colors with curses.""" curses.start_color() # Define color pairs self.color_pairs = { 'snake': ColorPair('snake', curses.COLOR_GREEN, curses.COLOR_BLACK, 1), 'food': ColorPair('food', curses.COLOR_RED, curses.COLOR_BLACK, 2), 'text': ColorPair('text', curses.COLOR_WHITE, curses.COLOR_BLACK, 3), } # Initialize color pairs for pair in self.color_pairs.values(): curses.init_pair(pair.pair_id, pair.foreground, pair.background) self.colors = {name: pair.pair_id for name, pair in self.color_pairs.items()} stdscr.bkgd(' ', curses.color_pair(self.colors['text'])) def get_color_pair(self, color_name: str) -> int: """Get color pair ID by name.""" return self.colors.get(color_name, self.colors['text'])