""" Puzzle 模块 - 谜题生成系统 提供多种类型的谜题生成器,支持从字符串、字典等数据源导入题目 """ from .base import BasePuzzle from .cloze import ClozePuzzle from .mcq import MCQPuzzle from .recognition import RecognitionPuzzle __all__ = [ "BasePuzzle", "ClozePuzzle", "MCQPuzzle", "RecognitionPuzzle", ] puzzles = { "mcq": MCQPuzzle, "cloze": ClozePuzzle, "recognition": RecognitionPuzzle, "base": BasePuzzle, } @staticmethod def create_by_dict(config_dict: dict) -> BasePuzzle: """ 根据配置字典创建谜题 Args: config_dict: 配置字典,包含谜题类型和参数 Returns: BasePuzzle: 谜题实例 Raises: ValueError: 当配置无效时抛出 """ puzzle_type = config_dict.get("type") if puzzle_type == "cloze": return puzzles["cloze"]( text=config_dict["text"], min_denominator=config_dict.get("min_denominator", 7), ) elif puzzle_type == "mcq": return puzzles["mcq"]( mapping=config_dict["mapping"], jammer=config_dict.get("jammer", []), max_riddles_num=config_dict.get("max_riddles_num", 2), prefix=config_dict.get("prefix", ""), ) else: raise ValueError(f"未知的谜题类型: {puzzle_type}")