You've already forked HeurAMS-Legacy
23 lines
856 B
Python
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 |