diff --git a/src/entities/gui_entities.py b/src/entities/gui_entities.py index 2ad0cead075013949e96d8c58db99f7a8d0f2584..16c30108364e3cf4bf326db20fbabfcd59ed3e33 100644 --- a/src/entities/gui_entities.py +++ b/src/entities/gui_entities.py @@ -56,6 +56,18 @@ class GuiCore: data_manager.gui_data['gui_w_start'] - 80, data_manager.gui_data['gui_h_start'] + 5, ) + self.ai_setting_text = GuiText( + data_manager, + 'AI Setting:', + 5, + data_manager.gui_data['gui_h_end'] - 25, + ) + self.ai_failure_text = GuiText( + data_manager, + 'Failure Chance: 0%', + data_manager.gui_data['gui_w_start'] - 150, + data_manager.gui_data['gui_h_end'] - 25, + ) self.settings_header_text = GuiText( data_manager, 'Settings:', diff --git a/src/systems.py b/src/systems.py index e3f200b01460a8597eaafc70f0fed9e56ee38924..a2f5cc8eef292c7744400f622d7e40861d4d759e 100644 --- a/src/systems.py +++ b/src/systems.py @@ -32,12 +32,27 @@ class SoftwareRendererSystem(sdl2.ext.SoftwareSpriteRenderSystem): super(SoftwareRendererSystem, self).render(components) # Also update dynamic GUI text elements. + # Set "optimal calculated solution" text. self.data_manager.gui.optimal_counter_text.update( 'Optimal Solution Cost: {0}'.format(self.data_manager.gui_data['optimal_counter']), ) + # Set "total moves taken" counter text. self.data_manager.gui.total_move_counter_text.update( 'Moves: {0}'.format(self.data_manager.gui_data['total_move_counter']), ) + # Set "current ai search setting" text. + ai_setting_text = 'AI Setting: {0}' + if self.data_manager.roomba_vision == 0: + ai_setting_text = ai_setting_text.format('Bump Sensor (0 Vision)') + elif self.data_manager.roomba_vision < 0: + ai_setting_text = ai_setting_text.format('Full Vision') + else: + ai_setting_text = ai_setting_text.format('{0} Tiles of Vision'.format(self.data_manager.roomba_vision)) + self.data_manager.gui.ai_setting_text.update(ai_setting_text) + # Set "can fail" text. + self.data_manager.gui.ai_failure_text.update( + 'Failure Chance: {0}'.format('10%' if self.data_manager.ai_can_fail else '0%'), + ) class AbstractMovementSystem(ABC):