Project 6: Android App for Manual Operation of Maze 


To Deliver: release 9.0

To Download: 

Due date for submission:    Nov 18, at 5 AM 

Drop out date:                     Nov 20, at 5 AM


Motivation

We want to port our maze java application to Android. This requires us to redesign the user interface and to port the Falstad package into the new Android project.

Since the new UI from Project 5 handles the different screens, we do not need particular classes from the Falstad package anymore, for example MazeApplication.java are not used anymore.

We also need to reorganize Maze.java since the different screens and states it currently manages are now handled by the new UI activities. In consequence, Maze.java will loose some of its responsibilities. 


As  Java AWT and Swing  packages are not supported on Android, we need to recode the MazePanel.java implementation in our Android project (if you did the refactoring HW that encapsulated all AWT graphics in MazePanel.java).


What to learn from this project:

- Experience in the differences between the general Java environment and the specific Android Java environment. 

- Working with threads (the maze generation operates in a separate thread to keep the UI responsive)

- Working with simple graphics in Android

- How Android handles graphics and screen updates in its UI thread with a message queue



Notes


When porting Falstad's code to Android, several issues come up:



As a general advice: do not attempt a big bang integration, identify individual steps, e.g. the integration of the maze generation and make this one work before integrating the graphics part etc. For the reimplementation of the MazePanel code: reimplement the individual functions and test them before you attempt to port the FirstPersonDrawer and the MapDrawer into the Android project.


To do list: