The GUI should have the following elements:
• A static text label with a title for the app
• An input panel with 2 numeric edit fields for Number of Targets and Grid Size (In the previous
assignments, the grid size was fixed at 10. In this assignment it is variable.) Each of these edit
fields should have a non-zero default value set in the design view of App Designer.
o Both the Number of Targets and Grid Size numeric edit fields should have callbacks that
update their corresponding values in the code view when the edit field value is changed
• A set of axes to display the robot and target locations (one set of axes total—the target locations
will only be displayed when a certain button is pressed)
• Four buttons to move in the Up, Down, Right, and Left directions. For this assignment, the robot
will always move one square at a time, unlike in the earlier assignments, where it could move
arbitrary distances. Therefore, an input() function call is NOT necessary.
• A Reset button. When the button is clicked, the grid and target matrices should be re-initialized
back to the non-zero number you originally set them to be, the robot’s coordinates should be
set to the center of the grid, and the number of targets found should be set back to 0.
• A Quit button. When this button is clicked, the remaining target locations are displayed in the
axes.
• Two text labels: one to display the number of targets found so far, and one to display the
number of neighboring targets to the robot’s current position. The second label can also be used
to display the warning message when the user tries to move outside the grid boundaries.