public class Planet {
public Planet(String name) {
super();
this.name = name;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class SpaceShip {
private String shipName;
private Planet currentPlannt;
public SpaceShip(String shipName) {
super();
this.shipName = shipName;
}
public String getShipName() {
return shipName;
}
public Planet getCurrentPlannt() {
return currentPlannt;
}
public void setShipName(String shipName) {
this.shipName = shipName;
}
public void setCurrentPlannt(Planet currentPlannt) {
this.currentPlannt = currentPlannt;
}
public void moveTo(Planet p){
System.out.println("SpaceShip "+this.getShipName()+" move from "+(this.currentPlannt==null?"Unknown space ":this.currentPlannt.getName())+" To "+p.getName());
this.setCurrentPlannt(p);
}
}
public class SpaceGame {
List<Planet> planets = new ArrayList<Planet>();
SpaceShip shipA = new SpaceShip("A");
SpaceShip shipB = new SpaceShip("B");
public static void main(String[] args){
SpaceGame game = new SpaceGame();
Planet p1 = new Planet("Earth");
Planet p2 = new Planet("Mars");
Planet p3 = new Planet("Jupitor");
Planet p4 = new Planet("Venus");
Planet p5 = new Planet("Saturn");
game.planets.add(p1);
game.planets.add(p2);
game.planets.add(p3);
game.planets.add(p4);
game.planets.add(p5);
game.shipA.moveTo(game.findPlanetByName("Earth"));
game.shipB.moveTo(game.findPlanetByName("Saturn"));
game.shipA.moveTo(game.findPlanetByName("Mars"));
game.shipB.moveTo(game.findPlanetByName("Jupitor"));
}
public List<Planet> getPlanets() {
return planets;
}
public SpaceShip getShipA() {
return shipA;
}
public SpaceShip getShipB() {
return shipB;
}
public void setPlanets(List<Planet> plannets) {
this.planets = plannets;
}
public Planet findPlanetByName(String name){
for (Planet p: planets){
if (p.getName().equals(name))
return p;
}
return null;
}
public void addPlanet(Planet p){
this.planets.add(p);
}
public void setShipA(SpaceShip shipA) {
this.shipA = shipA;
}
public void setShipB(SpaceShip shipB) {
this.shipB = shipB;
}
}