Group 11 -- Robot Battle:
Emily Amanatullah
Charlene Chen
Jonathan Low
GUI
What exists in the current beta version:

*Menubar
*Match
*New (implemented)
*Restart (not implemented)
*Exit (implemented)
*Game
*Start
*Pause
*End
*Options
*Editor (implemented)
*Settings (partially implemented)
*Help
*About RobotBattle
*How to Play RobotBattle
*Button Panel
*New (implemented)
*Start
*Pause
*End
*Robot Info Panel -partially implemented
*Robot Arena -partially implemented
CONTENTS OF CURRENT BETA VERSION:
Match --> New/"New" button
Pops up a JDialog allowing the user to load robots (i.e. click on "Add
Robot," select robot command file using JFileChooser, then that file is
parsed and listed in the JTextField). When "OK" is clicked, the
names of the robots will appear in the Robot Info panel (see below), and
the robots will appear in the arena (battlefield).
Match --> Exit
Quits the game.
Options --> Editor
Has menubar:
File --> Load/"Load File" button
Allows user to load an already existing robot command file into the
editable text area.
File --> Save/"Save" button
Allows user to save the current file.
File --> Save As/"Save As" button
Allows user to resave the current file under a different name.
File --> Exit
Closes the editor window.
Edit --> Cut/"Cut" button
Cuts selected text and adds it to the clipboard
Edit --> Copy/"Copy" button
Copies selected text and adds it to the clipboard
Edit --> Paste/"Paste" button
Pastes text from clipboard to the location of the cursor
Scrollable list of "states" (variables such as xpos, ypos, bodyaim).
User may click on a "state" and have it appear in the text field.
Scrollable list of "instructions" (such as SetAccel, GunLeft, RadarRight)
User may click on an "instruction" and have it appear in the text
field.
Options --> Settings
Non-functional JSlider which will eventually allow the user to change the
speed of the animation.
Help --> About Robot Battle
Dialog window pops up telling user who wrote the game and the version #.
Help --> How to Play Robot Battle
Dialog window pops up telling user how to play (add robots, start game,
scoring system, etc.)
Robot Info Panel
After robots have been loaded, this panel will list the name and energy
level for each robot.
Robot Arena (battlefield)
After robots have been loaded, robot icons will appear randomly on the
battlefield. When game is started, robots will move around and shoot each
other.
Parsing:
What can currently be parsed:
Completely Parses and Implements the following RobotBattleCommands:
Ahead*
Back*
Fire
SetAccel
Abs
Assugnment
BodyLeft
BodyRight
Registering all Events
GetRandom
GunLeft
GunRight
IsEqual
Max
Min
Name
NumFrom
RadarLeft
RadarRight
Scan
*still have some bugs
These are all parsed and stored in functions(abstracted
StrictInstructionLists) which are stored in a Program which is used to
construct a Robot.
Model:
The model creates the Board and adds BattleObjects to the board. It
then lets each BattleObject execute in turn until they perform an
action and creates a Context object which is used to evaluate
instructions and send info to the GUI.
Remaining functionability of Model and Parser:
The model **works** for everything. It calls the correct events but
this has only been tested for very simple battles. Much more thorough
testing is required. Additionally, a lot of code needs to be
refactored. As for added functionality, the only remaining commands
that we have decided to implement are if/else statements, syncgun, and
syncall. These are trivial. We will also need to implement buffer
cleaning (finishing multi-turn moves). This is also not too bad. The
major bulk of the remaining work is testing all cases and integration
and testing of the GUI. And trust me, there is a lot of testing to
do. We have implemented more than enough commands to make the game
advanced, complicated, functional, and fun but they all need to work
for the game to be useful to anyone and they need to work with the GUI
which they should very soon.
*****Projections for Version 1.0*****
GUI STUFF:
Implementations of the "Game" buttons will be complete (i.e. Start,
Pause, End, Restart). When Robots are added to the game via Game -->
New "Add Robots", OK they will be placed on the BattleField in their
appropriate location according to the interal X and Y coordinates
unique to each BattleObject and when the Start button is pressed, the
user will see the robots animate and attack each other. The Pause
button will allow the user to momentarily stop the action on the board
which can be restarted by clicking the Start button. The End button
allows the user to completely End the currently running game. The
Restart button allows the user to Restart a game with the same robots
as the one which most recently ended.
The Settings method will allow the user to adjust the speed of the
game. Other possible game components which may be implemented here are
to allow the user to adjust BattleField visuals, such as the
background color, the border color/shape, and the size.
The Robot Info Panel which currently displays the name and energy
level of the robots in the game will also display an Icon which will
resemble that robot's representation on the BattleField so that the
user will know of (and possibly be allowed to change) the color of
that particular robot.