From 0f005016207042f3f60cd6bb5a579d004286d78a Mon Sep 17 00:00:00 2001 From: david-ajax Date: Sat, 27 Dec 2025 01:40:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=83=A8=E5=88=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/heurams/interface/screens/memorizor.py | 8 ++++++-- src/heurams/interface/widgets/mcq_puzzle.py | 2 -- src/heurams/kernel/reactor/procession.py | 3 +++ src/heurams/services/version.py | 6 ++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/heurams/interface/screens/memorizor.py b/src/heurams/interface/screens/memorizor.py index 186fe48..9b4b6e6 100644 --- a/src/heurams/interface/screens/memorizor.py +++ b/src/heurams/interface/screens/memorizor.py @@ -52,6 +52,8 @@ class MemScreen(Screen): # logger.debug(self.phaser.state) self.procession: Procession = self.phaser.current_procession() # type: ignore self.atom: pt.Atom = self.procession.current_atom + self.fission = self.procession.current_fission + self.left_fission = 1 # logger.debug(self.phaser.state) # self.procession.forward(1) @@ -61,12 +63,13 @@ class MemScreen(Screen): def puzzle_widget(self): try: - self.fission = Fission(self.atom, self.phaser.state) puzzle_debug = next(self.fission.generate()) + self.left_fission = 1 return shim.puzzle2widget[puzzle_debug["puzzle"]]( atom=self.atom, alia=puzzle_debug["alia"] ) except (KeyError, StopIteration, AttributeError) as e: + self.left_fission = 0 logger.debug(f"调度展开出错: {e}") return Static("无法生成谜题") @@ -88,6 +91,7 @@ class MemScreen(Screen): def load_puzzle(self): self.atom: pt.Atom = self.procession.current_atom + self.fission = self.procession.current_fission container = self.query_one("#puzzle-container") for i in container.children: i.remove() @@ -109,7 +113,7 @@ class MemScreen(Screen): return if new_rating == -1: return - forwards = 1 if new_rating >= 4 else 0 + forwards = 1 if new_rating >= 4 and self.left_fission == 0 else 0 self.rating = -1 logger.debug(f"试图前进: {"允许" if forwards else "禁止"}") if forwards: diff --git a/src/heurams/interface/widgets/mcq_puzzle.py b/src/heurams/interface/widgets/mcq_puzzle.py index e686b49..27f094a 100644 --- a/src/heurams/interface/widgets/mcq_puzzle.py +++ b/src/heurams/interface/widgets/mcq_puzzle.py @@ -64,8 +64,6 @@ class MCQPuzzle(BasePuzzleWidget): setting: Setting = self.atom.registry["nucleon"].metadata["orbital"]["puzzles"][ self.alia ] - logger.debug(f"Puzzle Setting: {setting}") - logger.debug(f"WIRED INDEX: {len(self.inputlist)}") if len(self.inputlist) > len(self.puzzle.options): logger.debug("ERR IDX") logger.debug(self.inputlist) diff --git a/src/heurams/kernel/reactor/procession.py b/src/heurams/kernel/reactor/procession.py index 39811b6..9ff5a1c 100644 --- a/src/heurams/kernel/reactor/procession.py +++ b/src/heurams/kernel/reactor/procession.py @@ -1,6 +1,7 @@ import heurams.kernel.particles as pt from heurams.services.logger import get_logger +from .fission import Fission from .states import PhaserState, ProcessionState logger = get_logger(__name__) @@ -22,6 +23,7 @@ class Procession: self.cursor = 0 self.name = name self.phase = phase + self.current_fission = Fission(self.current_atom, self.phase) self.state: ProcessionState = ProcessionState.RUNNING logger.debug("Procession 初始化完成, 队列长度=%d", len(self.queue)) @@ -36,6 +38,7 @@ class Procession: try: logger.debug("cursor 更新为: %d", self.cursor) self.current_atom = self.queue[self.cursor] + self.current_fission = Fission(self.current_atom, self.phase) logger.debug("当前原子更新为: %s", self.current_atom.ident) return 1 # 成功 except IndexError as e: diff --git a/src/heurams/services/version.py b/src/heurams/services/version.py index 0239b75..3a4b58b 100644 --- a/src/heurams/services/version.py +++ b/src/heurams/services/version.py @@ -3,8 +3,6 @@ from heurams.services.logger import get_logger logger = get_logger(__name__) -ver = "0.4.3" +ver = "0.4.4" stage = "prototype" -codename = "fledge" # 雏鸟, 0.4.x 版本 - -logger.info("HeurAMS 版本: %s (%s), 阶段: %s", ver, codename, stage) +codename = "fledge"