1
0
Files
HeurAMS-Legacy/src/heurams/kernel/reactor/fission.py
2025-11-08 13:23:15 +08:00

23 lines
856 B
Python

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