Implement Board
Status: Pre-Alpha
Brought to you by:
edvera
The game needs a board on which players can play. The board features are defined on the project's blog article: http://mpangoproject.blogspot.com/2011/05/board-part-i.html
Any doubts or extensions should be reflected on the blog as comments or as new articles.
Chris, I have tentatively assigned this to you. Please let me know if you feel comfortable with it. I would like to discuss implementation details with you. Please let me know your preferred way for communication. Gtalk? IRC? Forum? Email?
Probably email or forum I guess, to keep track - avoids time zone difficulties too (I'm in Britain - don't know where everyone else is).
On the other hand some form of chat or something may be good - although I'd have to install. Is it preferable for me to use Windows or Ubuntu? I have a Ubuntu desktop & a Windows (company) laptop.
So: board - a wrapped rectangle of cells, size dependent on number of players, cells have a variety of attributes (jungle, mountain, etc) and presumably may have occupant(s).
Are there 4 'adjacent' cells or 8? Eg n,s,e,w or also nw,ne,se,sw?
How to separate characteristics between board/cells and occupants?
I think I need to review civilisation, sim city, etc so I can ask less dumb questions.
I think questions are never dumb, only blunt answers can be!
OS should be of your choice as java is a multiplatform language that should run on either of the OS proposed.
I believe that the adjacent cells should be 8 instead of 4, so that a unit can move on the following directions: s, se, e, ne, n, nw, w, sw.
There are already classes implementing the board but I would like you to review them so you can feel familiar with them and add the missing functionality (explained on the blog). I would also suggest you add some unit test so that you gain confidence with the unit testing frameworks used in the project.
Eventually and due to your exposure to functional languages, I will propose you to implement unit movements as they will require tree algorithms to find the shortest available route depending on the capabilities of movement of the unit in question (some units will be able to travel through land, others through water, others will fly, etc...).
Sorry, long time quiet - studying Java, and trying to get a working environment.
I have JavaSE6+Netbeans working, also SVN and Apache Maven, I think.
I've looked at GameBoard.java, Row.java, and Cell.java - seems to be more in there already than in the blog article, so I'm not entirely clear what's to do.
One thing which maybe you could discuss/explain:
Row looks superfluous to me - I'd make GameBoard an array of arrays of cells, and leave out Row altogether - it doesn't seem to be a meaningful entity.
Maybe I'm missing something.
I agree with the fact that there is current reason to have rows as a List of cells. Please refactor the code so that we have a bidimensional array of cells making sure that the current unit tests continue to succeed after the refactoring.
I meant there is no current reason! Sorry about that.