From 8e9643d24510fe183f20734056c3774f5d52adfb Mon Sep 17 00:00:00 2001 From: Brandon Rodriguez <brodriguez8774@gmail.com> Date: Sat, 6 Nov 2021 13:18:00 -0400 Subject: [PATCH] Update GUI to display additional current-state settings --- src/entities/gui_entities.py | 12 ++++++++++++ src/systems.py | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/entities/gui_entities.py b/src/entities/gui_entities.py index 2ad0cea..16c3010 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 e3f200b..a2f5cc8 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): -- GitLab