feat: 改进状态机

This commit is contained in:
2026-01-03 13:08:08 +08:00
parent aacf4fdbdf
commit 94aaef386b
24 changed files with 275 additions and 157 deletions

View File

@@ -8,24 +8,26 @@ from .states import PhaserState
class Fission:
"""裂变器: 单原子调度展开器"""
"""单原子调度展开器"""
def __init__(self, atom: pt.Atom, phase_state=PhaserState.RECOGNITION):
self.logger = get_logger(__name__)
self.atom = atom
#NOTE: phase 为 PhaserState 枚举实例需要获取其value
phase_value = phase_state.value if isinstance(phase_state, PhaserState) else phase_state
self.orbital_schedule = atom.registry["orbital"]["schedule"][phase_value] # type: ignore
self.orbital_puzzles = atom.registry["orbital"]["puzzles"]
# NOTE: phase 为 PhaserState 枚举实例需要获取其value
phase_value = (
phase_state.value if isinstance(phase_state, PhaserState) else phase_state
)
self.orbital_schedule = atom.registry["phases"][phase_value] # type: ignore
self.orbital_puzzles = atom.registry["nucleon"]["puzzles"]
self.puzzles = list()
for item, possibility in self.orbital_schedule: # type: ignore
self.logger.debug(f"开始处理 orbital 项: {item}")
self.logger.debug(f"开始处理: {item}")
if not isinstance(possibility, float):
possibility = float(possibility)
while possibility > 1:
self.puzzles.append(
{
@@ -34,7 +36,7 @@ class Fission:
}
)
possibility -= 1
if random.random() <= possibility:
self.puzzles.append(
{
@@ -42,8 +44,8 @@ class Fission:
"alia": item,
}
)
self.logger.debug(f"orbital 项处理完成: {item}")
def generate(self):
yield from self.puzzles
def get_puzzles_list(self):
yield from self.puzzles