import heurams.kernel.particles as pt import heurams.kernel.puzzles as puz import random from .states import PhaserState class Fission(): """裂变器: 单原子调度展开器""" def __init__(self, atom: pt.Atom, phase = PhaserState.RECOGNITION): self.atom = atom self.orbital = atom.registry["orbital"][phase.value] print(self.orbital) self.puzzles = list() for item, possibility in self.orbital: # type: ignore if not isinstance(possibility, float): possibility = float(possibility) while possibility > 1: self.puzzles.append(puz.puzzles[item]) possibility -= 1 if random.random() <= possibility: self.puzzles.append(puz.puzzles[item]) def generate(self): yield from self.puzzles