Milestone 3

12 views
Skip to first unread message

Natalie Swanteson-Franz

unread,
Apr 28, 2011, 11:14:19 AM4/28/11
to CS251-spr2011
I can't remember if this was discussed in class so I'm going to go
ahead and ask. For Milestone 3, do we build it "from scratch" or do we
need code that you give us?

Thanks,
Natalie

Karl Stolleis

unread,
Apr 28, 2011, 12:38:27 PM4/28/11
to cs251-...@googlegroups.com
Actually I was wondering if there was ever a formal declaration of what Milestone 3 is.  A "gui board editor" is pretty vague.

KS
--
Karl Stolleis
(505) 795-3111
karl.s...@gmail.com
www.karlstolleis.com

As long as people believe in absurdities they will continue to commit atrocities.
-Voltaire


Joseph Collard

unread,
Apr 28, 2011, 1:50:16 PM4/28/11
to cs251-...@googlegroups.com
Natalie,

That is correct. You will be building the GUI from scratch. I highly
recommend splitting the work up in this way:

For a 3 person group;

Person 1: Build the Map Editor. I.E. The grid / toolbox used to place
items on the screen.
Person 2: Write the Serialization code for the Board and 1/3 of the Tiles
Person 3: Write the Serialization code for the remaining 2/3 of the
Tiles and build a Menu to access the Save / Load Features

Hope this helps,

Joe

Timothy Crisler

unread,
Apr 28, 2011, 1:55:59 PM4/28/11
to cs251-...@googlegroups.com
Is there going to be a milestone 3?

Sent from my iPhone

Joseph Collard

unread,
Apr 28, 2011, 1:59:51 PM4/28/11
to cs251-...@googlegroups.com
Karl, you are correct. This is very vague. I will try to talk with Professor Hayes later today to come up with some more "strict" guidelines.

Here are things I believe should be in the 3rd Mile Stone:

 - A "nice" interface that is "intuitive" for a user
    - "nice" implies that your GUI can be resized without components doing odd things (hint: use layoutmanagers)
    - "intuitive" means that the user should not require very much documentation on how to make a map (hint: Think of a simple drawing program)

 - Your editor must be able to do the following:
    - Have a "ToolBox" which contains all possible Tiles that can be placed on the board (These tools should contain the starting location for no less than 4 Robots)
    - Have a "Pen" which will place the currently selected Tile from the ToolBox onto the board when clicked on
    - Have a persistent display of the board on the screen which can be modified using the "Pen"
    - Have a File menu that contains a New, Save, Load, and Exit option.
    - Have an About menu that contains atleast a Help option that brings up a small explanation of how to use the editor

 - Extras
    - Have the ability to resize your map
    - Have the ability to do a Flood Fill of a specific type of tile
    - Have the ability to Undo / Redo the last action performed
    - Have the ability to create customize "Tool Palettes"

I hope this gives you a starting point.

Joe

Joseph Collard

unread,
Apr 28, 2011, 2:01:26 PM4/28/11
to cs251-...@googlegroups.com
Yes, Mile Stone #3 is due Monday May 1st. This Mile Stone should be to complete a GUI editor for all the Tiles you have created thus far. This will also require you to implement the Board interface such that you can modify the state of the Board without "Hard" coding it in.

Joe

Ryan Crow

unread,
Apr 28, 2011, 2:16:27 PM4/28/11
to cs251-...@googlegroups.com

Monday is May 2nd not the 1st - so its due monday (the 2nd) at midnight? The final is on May 6th?
--
Ryan Crow
PhD Candidate
University of New Mexico
Department of Earth and Planetary Sciences
MSCO3-2040
1 University of New Mexico
Albuquerque, New Mexico 87131-0001
Cell: 505 688-9333

Joseph Collard

unread,
Apr 28, 2011, 2:23:33 PM4/28/11
to cs251-...@googlegroups.com
Ryan,

You are correct. Mile Stone 3 is due Monday May 2nd at midnight and the final is on May 6th during the regularly scheduled class.

Also, the "ultimate" due date of the entire project (if you decide to add extras) is due Monday May 9th.

Joe

Jonathan Strawn

unread,
Apr 28, 2011, 2:28:13 PM4/28/11
to cs251-...@googlegroups.com
Just to clarify for everyone, if we use late days for this Milestone 3, we are required to use 1 late day per person per late day, so a group of 3 would use 1 late day from each them per day.  So even if no one in the group has used a late day at most we can only use 5 late days, correct?

-jon

Timothy Crisler

unread,
Apr 28, 2011, 10:53:52 PM4/28/11
to cs251-...@googlegroups.com
Thank you 

Sent from my iPhone

Thomas Hayes

unread,
Apr 29, 2011, 12:27:48 AM4/29/11
to cs251-...@googlegroups.com
Hi class,

Let me clarify this a little further.
Basically, what Joe described is exactly what I want.  However, there are some aspects where you have more choices than what he mentions.  To summarize, you should have:

1) A JMenuBar containing, at minimum, a File menu and a Help menu.
2) File menu should have New, Save, Load, Quit options.
3) The main functionality is to create and edit a roborally.board.Board
One approach is to have a "tool palette" that lets the user select any kind of tile,
and also a "board display" that lets the user click on any board location, to put
a tile of the selected kind there.  The tool palette could include other options,
like a rotate tool, if desired.

Other approaches are also possible.  For instance, you could use popup menus or popup windows to allow the user to inspect and interact with tiles or empty spaces on the board.

Don't reinvent the wheel!  You should use a JFileChooser to let the user select files for the Load and Save commands.  If you do a tool palette, use classes like JToggleButton to make selecting a tool easy.  You can use the setIcon method to make buttons look the way you want.  Use JPanels and LayoutManagers to help to organize the GUI components within your JFrame(s).

One more bit of advice: it's a good idea to divide your functionality into classes in a logical way, and try to test out the GUI bits as you go.  You can test your file I/O code on Board objects that you hard-code in, so it can be worked on separately from the board editing functionality.  You should probably get your editor working properly with just floor and pit tiles, and then add in the rest one by one.   

Tom
Reply all
Reply to author
Forward
0 new messages