1
0
Files
HeurAMS-Legacy/src/heurams/kernel/puzzles/registry.py
david-ajax 98f225efe4 更新
2025-10-26 11:33:08 +08:00

31 lines
955 B
Python

# registry.py
from typing import Dict, Type, Any
from base import BasePuzzle
class PuzzleRegistry:
"""谜题注册表"""
def __init__(self):
self._puzzles: Dict[str, Type[BasePuzzle]] = {}
def register(self, name: str, puzzle_class: Type[BasePuzzle]):
"""注册谜题类"""
self._puzzles[name] = puzzle_class
return puzzle_class
def create(self, name: str, **kwargs) -> BasePuzzle:
"""创建谜题实例"""
if name not in self._puzzles:
raise ValueError(f"未知的谜题类型: {name}")
return self._puzzles[name](**kwargs)
def list_available(self) -> list:
"""获取可用的谜题类型列表"""
return list(self._puzzles.keys())
def get_class(self, name: str) -> Type[BasePuzzle]:
"""获取谜题类"""
return self._puzzles.get(name) # type: ignore
# 全局注册表实例
registry = PuzzleRegistry()