Skip to content

Commit ac14b82

Browse files
committed
fix:切屏引发的雷数错误的变化
1 parent f98f16b commit ac14b82

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/main.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,21 @@ def find_window(class_name, window_name):
107107
# cell7, cell8, fps, (hizi)
108108
# 其他类:checksum_ok, race_identifier, mode, is_offical, is_fair
109109

110+
# 工具箱中局面状态和鼠标状态的定义:
111+
110112
# GameBoardState::Ready => Ok(1),
111113
# GameBoardState::Playing => Ok(2),
112114
# GameBoardState::Win => Ok(3),
113115
# GameBoardState::Loss => Ok(4),
114116
# GameBoardState::PreFlaging => Ok(5),
115117
# GameBoardState::Display => Ok(6),
116118

119+
# MouseState::UpUp => Ok(1),
120+
# MouseState::UpDown => Ok(2),
121+
# MouseState::UpDownNotFlag => Ok(3),
122+
# MouseState::DownUp => Ok(4),
123+
# MouseState::Chording => Ok(5),
124+
# MouseState::ChordingNotFlag => Ok(6),
125+
# MouseState::DownUpAfterChording => Ok(7),
126+
# MouseState::Undefined => Ok(8),
127+

src/mineSweeperGUI.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -445,10 +445,15 @@ def mineAreaLeftRelease(self, i, j):
445445
def mineAreaRightPressed(self, i, j):
446446
if self.game_state == 'ready' or self.game_state == 'playing' or self.game_state == 'joking':
447447
if i < self.pixSize * self.row and j < self.pixSize * self.column:
448-
if self.label.ms_board.game_board[i//self.pixSize][j//self.pixSize] == 11:
448+
# 计算左上角显示的雷数用。必须校验:当前格的状态、鼠标状态为双键都抬起。
449+
# 假如按下左键,再切屏(比如快捷键截图),再左键抬起,再切回来,再右键按下,
450+
# 就会导致DownUp状态下右键按下。此时不应该标雷,左上角雷数也应该不变
451+
if self.label.ms_board.game_board[i//self.pixSize][j//self.pixSize] == 11 and\
452+
self.label.ms_board.mouse_state == 1:
449453
self.mineUnFlagedNum += 1
450454
self.showMineNum(self.mineUnFlagedNum)
451-
elif self.label.ms_board.game_board[i//self.pixSize][j//self.pixSize] == 10:
455+
elif self.label.ms_board.game_board[i//self.pixSize][j//self.pixSize] == 10 and\
456+
self.label.ms_board.mouse_state == 1:
452457
self.mineUnFlagedNum -= 1
453458
self.showMineNum(self.mineUnFlagedNum)
454459
self.label.ms_board.step('rc', (i, j))

0 commit comments

Comments
 (0)