Board.java
package edu.chl.hajo.monopoly.core;
import edu.chl.hajo.monopoly.core.space.Space;
import java.util.Iterator;
import java.util.List;
/**
* The board holding spaces
*
* @author hajo
*
*/
public class Board implements Iterable<Space> {
// private static final int JAIL = 5; // TODO config??
private final List<Space> spaces;
public Board(List<Space> spaces) {
this.spaces = spaces;
}
public int size() {
return spaces.size();
}
// Move to Player generic set position TODO
/*public void moveToJail(Player player) {
player.setPosition(spaces.get(JAIL));
}*/
public Space getStart() {
return spaces.get(0);
}
@Override
public Iterator<Space> iterator() {
return spaces.iterator();
}
public Space getSpace(String name) {
for (Space s : spaces) {
if (s.getName().equals(name)) {
return s;
}
}
return null;
}
public Space getSpace(Space space, int steps) {
int oldPos = spaces.indexOf(space);
int newPos = (oldPos + steps) % spaces.size();
return spaces.get(newPos);
}
boolean hasPassedGo(Space oldPos, Space newPos) {
return spaces.indexOf(oldPos) > spaces.indexOf(newPos);
}
}