@@ -167,26 +167,22 @@ def pixSize(self, pixSize):
167167 return
168168 self .label .set_rcp (self .row , self .column , pixSize )
169169 self .label .reloadCellPic (pixSize )
170- if (self .row , self .column , self .minenum ) == (8 , 8 , 10 ):
171- self .predefinedBoardPara [1 ]['pixsize' ] = pixSize
172- elif (self .row , self .column , self .minenum ) == (16 , 16 , 40 ):
173- self .predefinedBoardPara [2 ]['pixsize' ] = pixSize
174- elif (self .row , self .column , self .minenum ) == (16 , 30 , 99 ):
175- self .predefinedBoardPara [3 ]['pixsize' ] = pixSize
176- elif (self .row , self .column , self .minenum ) == (self .predefinedBoardPara [4 ]['row' ],
177- self .predefinedBoardPara [4 ]['column' ],
178- self .predefinedBoardPara [4 ]['mine_num' ]):
179- self .predefinedBoardPara [4 ]['pixsize' ] = pixSize
180- elif (self .row , self .column , self .minenum ) == (self .predefinedBoardPara [5 ]['row' ],
181- self .predefinedBoardPara [5 ]['column' ],
182- self .predefinedBoardPara [5 ]['mine_num' ]):
183- self .predefinedBoardPara [5 ]['pixsize' ] = pixSize
184- elif (self .row , self .column , self .minenum ) == (self .predefinedBoardPara [6 ]['row' ],
185- self .predefinedBoardPara [6 ]['column' ],
186- self .predefinedBoardPara [6 ]['mine_num' ]):
187- self .predefinedBoardPara [6 ]['pixsize' ] = pixSize
170+
171+ board_key = (self .row , self .column , self .minenum )
172+ if board_key == (8 , 8 , 10 ):
173+ idx = 1
174+ elif board_key == (16 , 16 , 40 ):
175+ idx = 2
176+ elif board_key == (16 , 30 , 99 ):
177+ idx = 3
188178 else :
189- self .predefinedBoardPara [0 ]['pixsize' ] = pixSize
179+ idx = 0
180+ for i in range (4 , 7 ):
181+ p = self .predefinedBoardPara [i ]
182+ if board_key == (p .get ('row' ), p .get ('column' ), p .get ('mine_num' )):
183+ idx = i
184+ break
185+ self .predefinedBoardPara [idx ]['pixsize' ] = pixSize
190186
191187 # self.label.setMinimumSize(QtCore.QSize(
192188 # pixSize * self.column + 8, pixSize * self.row + 8))
@@ -1044,52 +1040,22 @@ def action_CEvent(self):
10441040 # })
10451041
10461042 def set_board_params (self , row , column , minenum ):
1047- # 把局面设置成(row, column, minenum),同时提取配套参数
1048- # 打开录像时、改级别、改设置时用
10491043 self .row = row
10501044 self .column = column
10511045 self .minenum = minenum
1052- if (row , column , minenum ) == (8 , 8 , 10 ):
1053- self .pixSize = self .predefinedBoardPara [1 ]['pixsize' ]
1054- self .gameMode = self .predefinedBoardPara [1 ]['gamemode' ]
1055- self .board_constraint = self .predefinedBoardPara [1 ]['board_constraint' ]
1056- self .attempt_times_limit = self .predefinedBoardPara [1 ]['attempt_times_limit' ]
1057- elif (row , column , minenum ) == (16 , 16 , 40 ):
1058- self .pixSize = self .predefinedBoardPara [2 ]['pixsize' ]
1059- self .gameMode = self .predefinedBoardPara [2 ]['gamemode' ]
1060- self .board_constraint = self .predefinedBoardPara [2 ]['board_constraint' ]
1061- self .attempt_times_limit = self .predefinedBoardPara [2 ]['attempt_times_limit' ]
1062- elif (row , column , minenum ) == (16 , 30 , 99 ):
1063- self .pixSize = self .predefinedBoardPara [3 ]['pixsize' ]
1064- self .gameMode = self .predefinedBoardPara [3 ]['gamemode' ]
1065- self .board_constraint = self .predefinedBoardPara [3 ]['board_constraint' ]
1066- self .attempt_times_limit = self .predefinedBoardPara [3 ]['attempt_times_limit' ]
1067- elif (row , column , minenum ) == (self .predefinedBoardPara [4 ]['row' ],
1068- self .predefinedBoardPara [4 ]['column' ],
1069- self .predefinedBoardPara [4 ]['mine_num' ]):
1070- self .pixSize = self .predefinedBoardPara [4 ]['pixsize' ]
1071- self .gameMode = self .predefinedBoardPara [4 ]['gamemode' ]
1072- self .board_constraint = self .predefinedBoardPara [4 ]['board_constraint' ]
1073- self .attempt_times_limit = self .predefinedBoardPara [4 ]['attempt_times_limit' ]
1074- elif (row , column , minenum ) == (self .predefinedBoardPara [5 ]['row' ],
1075- self .predefinedBoardPara [5 ]['column' ],
1076- self .predefinedBoardPara [5 ]['mine_num' ]):
1077- self .pixSize = self .predefinedBoardPara [5 ]['pixsize' ]
1078- self .gameMode = self .predefinedBoardPara [5 ]['gamemode' ]
1079- self .board_constraint = self .predefinedBoardPara [5 ]['board_constraint' ]
1080- self .attempt_times_limit = self .predefinedBoardPara [5 ]['attempt_times_limit' ]
1081- elif (row , column , minenum ) == (self .predefinedBoardPara [6 ]['row' ],
1082- self .predefinedBoardPara [6 ]['column' ],
1083- self .predefinedBoardPara [6 ]['mine_num' ]):
1084- self .pixSize = self .predefinedBoardPara [6 ]['pixsize' ]
1085- self .gameMode = self .predefinedBoardPara [6 ]['gamemode' ]
1086- self .board_constraint = self .predefinedBoardPara [6 ]['board_constraint' ]
1087- self .attempt_times_limit = self .predefinedBoardPara [6 ]['attempt_times_limit' ]
1088- else :
1089- self .pixSize = self .predefinedBoardPara [0 ]['pixsize' ]
1090- self .gameMode = self .predefinedBoardPara [0 ]['gamemode' ]
1091- self .board_constraint = self .predefinedBoardPara [0 ]['board_constraint' ]
1092- self .attempt_times_limit = self .predefinedBoardPara [0 ]['attempt_times_limit' ]
1046+
1047+ board_key = (row , column , minenum )
1048+ for i in range (1 , 7 ):
1049+ p = self .predefinedBoardPara [i ]
1050+ if (row , column , minenum ) == (p .get ('row' ), p .get ('column' ), p .get ('mine_num' )):
1051+ board_key = i
1052+ break
1053+
1054+ params = self .predefinedBoardPara [0 ] if isinstance (board_key , tuple ) else self .predefinedBoardPara [board_key ]
1055+ self .pixSize = params ['pixsize' ]
1056+ self .gameMode = params ['gamemode' ]
1057+ self .board_constraint = params ['board_constraint' ]
1058+ self .attempt_times_limit = params ['attempt_times_limit' ]
10931059
10941060 def setBoard_and_start (self , row , column , minenum ):
10951061 # 把局面设置成(row, column, minenum),把3BV的限制设置成min3BV, max3BV
@@ -1130,29 +1096,22 @@ def action_NEvent(self):
11301096
11311097 self .board_constraint = ui .board_constraint
11321098 self .attempt_times_limit = ui .attempt_times_limit
1133- if (self .row , self .column , self .minenum ) == (8 , 8 , 10 ):
1134- self .predefinedBoardPara [1 ]['attempt_times_limit' ] = self .attempt_times_limit
1135- self .predefinedBoardPara [1 ]['board_constraint' ] = self .board_constraint
1136- self .predefinedBoardPara [1 ]['gamemode' ] = ui .gameMode
1137- elif (self .row , self .column , self .minenum ) == (16 , 16 , 40 ):
1138- self .predefinedBoardPara [2 ]['attempt_times_limit' ] = self .attempt_times_limit
1139- self .predefinedBoardPara [2 ]['board_constraint' ] = self .board_constraint
1140- self .predefinedBoardPara [2 ]['gamemode' ] = ui .gameMode
1141- elif (self .row , self .column , self .minenum ) == (16 , 30 , 99 ):
1142- self .predefinedBoardPara [3 ]['attempt_times_limit' ] = self .attempt_times_limit
1143- self .predefinedBoardPara [3 ]['board_constraint' ] = self .board_constraint
1144- self .predefinedBoardPara [3 ]['gamemode' ] = ui .gameMode
1099+
1100+ board_key = (self .row , self .column , self .minenum )
1101+ if board_key == (8 , 8 , 10 ):
1102+ idx = 1
1103+ elif board_key == (16 , 16 , 40 ):
1104+ idx = 2
1105+ elif board_key == (16 , 30 , 99 ):
1106+ idx = 3
11451107 else :
1146- self .predefinedBoardPara [0 ]['attempt_times_limit' ] = self .attempt_times_limit
1147- self .predefinedBoardPara [0 ]['board_constraint' ] = self .board_constraint
1148- self .predefinedBoardPara [0 ]['gamemode' ] = ui .gameMode
1108+ idx = 0
1109+ self .predefinedBoardPara [idx ]['attempt_times_limit' ] = self .attempt_times_limit
1110+ self .predefinedBoardPara [idx ]['board_constraint' ] = self .board_constraint
1111+ self .predefinedBoardPara [idx ]['gamemode' ] = ui .gameMode
11491112
11501113 self .score_board_manager .with_namespace ({
1151- # "race_identifier": ui.race_identifier,
11521114 "mode" : self .gameMode ,
1153- # "row": self.row,
1154- # "column": self.column,
1155- # "minenum": self.minenum,
11561115 })
11571116 self .score_board_manager .show (self .label .ms_board , index_type = 1 )
11581117
@@ -1380,9 +1339,7 @@ def is_official(self) -> bool:
13801339 def is_fair (self ) -> bool :
13811340 if self .board_constraint :
13821341 return False
1383- # 因为记录evfs是绑定game_state的setter方法的,所以假如勾选记录evfs,
1384- # 此处就是"playing";反之,此处就是"win"或"fail",总之都是fair的
1385- return self .game_state == "win" or self .game_state == "fail" or self .game_state == "playing"
1342+ return self .game_state in ("win" , "fail" , "playing" )
13861343
13871344 def cell_is_in_board (self , i , j ):
13881345 # 点在局面内,单位是格不是像素
@@ -1444,32 +1401,25 @@ class RECT(ctypes.Structure):
14441401 ctypes .windll .user32 .ClipCursor (ctypes .byref (r ))
14451402
14461403 def closeEvent_ (self ):
1447- # 主窗口关闭的回调
14481404 self .unlimit_cursor ()
1449- # self.score_board_manager.close()
1450- self .game_setting .set_value (
1451- "DEFAULT/mainWinTop" , str (self .mainWindow .y ()))
1452- self .game_setting .set_value (
1453- "DEFAULT/mainWinLeft" , str (self .mainWindow .x ()))
1405+ self .game_setting .set_value ("DEFAULT/mainWinTop" , str (self .mainWindow .y ()))
1406+ self .game_setting .set_value ("DEFAULT/mainWinLeft" , str (self .mainWindow .x ()))
14541407 self .game_setting .set_value ("DEFAULT/row" , str (self .row ))
14551408 self .game_setting .set_value ("DEFAULT/column" , str (self .column ))
14561409 self .game_setting .set_value ("DEFAULT/minenum" , str (self .minenum ))
14571410
1458- if (self .row , self .column , self .minenum ) == (8 , 8 , 10 ):
1459- self .game_setting .set_value (
1460- "BEGINNER/gamemode" , str (self .gameMode ))
1461- self .game_setting .set_value ("BEGINNER/pixsize" , str (self .pixSize ))
1462- elif (self .row , self .column , self .minenum ) == (16 , 16 , 40 ):
1463- self .game_setting .set_value (
1464- "INTERMEDIATE/gamemode" , str (self .gameMode ))
1465- self .game_setting .set_value (
1466- "INTERMEDIATE/pixsize" , str (self .pixSize ))
1467- elif (self .row , self .column , self .minenum ) == (16 , 30 , 99 ):
1468- self .game_setting .set_value ("EXPERT/gamemode" , str (self .gameMode ))
1469- self .game_setting .set_value ("EXPERT/pixsize" , str (self .pixSize ))
1411+ board_key = (self .row , self .column , self .minenum )
1412+ if board_key == (8 , 8 , 10 ):
1413+ section = "BEGINNER"
1414+ elif board_key == (16 , 16 , 40 ):
1415+ section = "INTERMEDIATE"
1416+ elif board_key == (16 , 30 , 99 ):
1417+ section = "EXPERT"
14701418 else :
1471- self .game_setting .set_value ("CUSTOM/gamemode" , str (self .gameMode ))
1472- self .game_setting .set_value ("CUSTOM/pixsize" , str (self .pixSize ))
1419+ section = "CUSTOM"
1420+
1421+ self .game_setting .set_value (f"{ section } /gamemode" , str (self .gameMode ))
1422+ self .game_setting .set_value (f"{ section } /pixsize" , str (self .pixSize ))
14731423
14741424 self .game_setting .sync ()
14751425 self .record_setting .sync ()
0 commit comments