Extended the code using Copilot with tons of cool features. Read the CHAT.md for what I asked and what it did
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""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'])
|
||||
Reference in New Issue
Block a user