public class Ghost extends Monster { private int x; private int y; public Ghost(String n, MonsterType m, int x, int y, Dungeon theD) { super(n); super.setMonsterType(m); this.setX(x); this.setY(y); super.setLiveStatus(Monster.LiveStatus.LIVING); theD.addMonsters(this, this.getX(), this.getY()); } /* ************************************************************** */ // Getters and Setters public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } /* ************************************************************** */ // Movements // move north public void moveNorth(Dungeon theD) { if(this.getLiveStatus() == Monster.LiveStatus.LIVING) { // Removes itself from current position theD.getTheDungeon()[this.getX()][this.getY()].deleteTheMonster(this); // Goes North till it finds a TILE without another GHOST do { this.setY(this.getY() + 1); // Wraps around ( if it goes beyond GRID) if((this.getY()) > 9) this.setY(0); }while(theD.getTheDungeon()[this.getX()][this.getY()].contains(Monster.MonsterType.GHOST)); // theD.getTheDungeon() --> returns Tile[][] array // theD.getTheDungeon()[x][y] --> returns a Tile Object --> containing Monsters[] // Now it adds itself to this CHANNEL theD.addMonsters(this, this.getX(), this.getY()); } else { System.out.println(this.getName() + " " + this.getMonsterType() + " IS DEAD "); } } // move south public void moveSouth(Dungeon theD) { if(this.getLiveStatus() == Monster.LiveStatus.LIVING) { // Removes itself from current position theD.getTheDungeon()[this.getX()][this.getY()].deleteTheMonster(this); // Goes south till it finds a TILE without another ghost do { this.setY(this.getY() - 1); // Wraps around ( if it goes beyond GRID) if((this.getY()) < 0) this.setY(9); }while(theD.getTheDungeon()[this.getX()][this.getY()].contains(Monster.MonsterType.GHOST)); // theD.getTheDungeon() --> returns Tile[][] array // theD.getTheDungeon()[x][y] --> returns a Tile Object --> containing Monsters[] // Now it adds itself to this TILE theD.addMonsters(this, this.getX(), this.getY()); } else { System.out.println(this.getName() + " " + this.getMonsterType() + " IS DEAD "); } } // move west public void moveWest(Dungeon theD) { if(this.getLiveStatus() == Monster.LiveStatus.LIVING) { // Removes itself from current position theD.getTheDungeon()[this.getX()][this.getY()].deleteTheMonster(this); // Goes west till it finds a TILE without another ghost do { this.setX(this.getX() - 1); // Wraps around ( if it goes beyond GRID) if((this.getX()) < 0) this.setX(9); }while(theD.getTheDungeon()[this.getX()][this.getY()].contains(Monster.MonsterType.GHOST)); // theD.getTheDungeon() --> returns Tile[][] array // theD.getTheDungeon()[x][y] --> returns a Tile Object --> containing Monsters[] // Now it adds itself to this CHANNEL theD.addMonsters(this, this.getX(), this.getY()); } else { System.out.println(this.getName() + " " + this.getMonsterType() + " IS DEAD "); } } // move west public void moveEast(Dungeon theD) { if(this.getLiveStatus() == Monster.LiveStatus.LIVING) { // Removes itself from current position theD.getTheDungeon()[this.getX()][this.getY()].deleteTheMonster(this); // Goes EAST till it finds a TILE without another ghost do { this.setX(this.getX() + 1); // Wraps around ( if it goes beyond GRID) if((this.getX()) > 9) this.setX(0); }while(theD.getTheDungeon()[this.getX()][this.getY()].contains(Monster.MonsterType.GHOST)); // theD.getTheDungeon() --> returns Tile[][] array // theD.getTheDungeon()[x][y] --> returns a Tile Object --> containing Monsters[] // Now it adds itself to this CHANNEL theD.addMonsters(this, this.getX(), this.getY()); } else { System.out.println(this.getName() + " " + this.getMonsterType() + " IS DEAD "); } } /* **************************************************************** */ public String toString() { String str; //str = super.getName() + " *** " + super.getMonsterType() + "\n"; str = String.format("%s %s", super.getName(), super.getMonsterType().toString()); return str; } }
Tuesday, October 26, 2010
LabTest#2: Revised Solution -- Section 5 -- Class: Ghost
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment