6060
6161
6262APP_NAME = 'Python Easy Chess GUI'
63- APP_VERSION = 'v1.5 '
63+ APP_VERSION = 'v1.6 '
6464BOX_TITLE = '{} {}' .format (APP_NAME , APP_VERSION )
6565
6666
@@ -2496,6 +2496,7 @@ def main_loop(self):
24962496
24972497 :return:
24982498 """
2499+ engine_id_name = None
24992500 layout = self .build_main_layout (True )
25002501
25012502 # Use white layout as default window
@@ -2511,16 +2512,26 @@ def main_loop(self):
25112512 self .engine_id_name_list = self .get_engine_id_name_list ()
25122513
25132514 # Define default opponent engine, user can change this later.
2514- engine_id_name = self .opp_id_name = self .engine_id_name_list [0 ]
2515- self .opp_file , self .opp_path_and_file = self .get_engine_file (
2516- engine_id_name )
2515+ try :
2516+ engine_id_name = self .opp_id_name = self .engine_id_name_list [0 ]
2517+ self .opp_file , self .opp_path_and_file = self .get_engine_file (
2518+ engine_id_name )
2519+ except IndexError as e :
2520+ logging .warning (e )
2521+ except Exception :
2522+ logging .exception ('Error in getting opponent engine!' )
25172523
25182524 # Define default adviser engine, user can change this later.
2519- self .adviser_id_name = self .engine_id_name_list [1 ] \
2520- if len (self .engine_id_name_list ) >= 2 \
2521- else self .engine_id_name_list [0 ]
2522- self .adviser_file , self .adviser_path_and_file = self .get_engine_file (
2523- self .adviser_id_name )
2525+ try :
2526+ self .adviser_id_name = self .engine_id_name_list [1 ] \
2527+ if len (self .engine_id_name_list ) >= 2 \
2528+ else self .engine_id_name_list [0 ]
2529+ self .adviser_file , self .adviser_path_and_file = self .get_engine_file (
2530+ self .adviser_id_name )
2531+ except IndexError as e :
2532+ logging .warning (e )
2533+ except Exception :
2534+ logging .exception ('Error in getting adviser engine!' )
25242535
25252536 self .init_game ()
25262537
@@ -3434,6 +3445,12 @@ def main_loop(self):
34343445
34353446 # Mode: Neutral
34363447 if button == 'Play' :
3448+ if engine_id_name is None :
3449+ logging .warning ('Install engine first!' )
3450+ sg .Popup ('Install engine first! in Engine/Manage/Install' ,
3451+ icon = 'Icon/pecg.ico' , title = 'Mode' )
3452+ continue
3453+
34373454 # Change menu from Neutral to Play
34383455 self .menu_elem .Update (menu_def_play )
34393456 self .psg_board = copy .deepcopy (initial_board )
0 commit comments