179 lines
3.5 KiB
Java
179 lines
3.5 KiB
Java
package visualizationElements;
|
|
|
|
/**
|
|
* Represents a Cell of a maze.
|
|
* @author MSchaefer
|
|
*
|
|
*/
|
|
public class Cell {
|
|
|
|
private boolean northWall = true;
|
|
private boolean southWall = true;
|
|
private boolean westWall = true;
|
|
private boolean eastWall = true;
|
|
private boolean isStart;
|
|
private boolean isGoal;
|
|
private boolean visited;
|
|
private final int column;
|
|
private final int row;
|
|
|
|
/**
|
|
* Creates a new cell of a maze.
|
|
* @param column Number of the column the cell is arranged in.
|
|
* @param row Number of the row the cell is arranged in.
|
|
*/
|
|
public Cell(int column, int row){
|
|
this.column = column;
|
|
this.row = row;
|
|
}
|
|
|
|
/**
|
|
* Sets the cell's north wall to false.
|
|
*/
|
|
public void removeNorthWall(){
|
|
this.northWall = false;
|
|
}
|
|
|
|
/**
|
|
* Sets the cell's south wall to false.
|
|
*/
|
|
public void removeSouthWall(){
|
|
this.southWall = false;
|
|
}
|
|
|
|
/**
|
|
* Sets the cell's west wall to false.
|
|
*/
|
|
public void removeWestWall(){
|
|
this.westWall = false;
|
|
}
|
|
|
|
/**
|
|
* Sets the cell's east wall to false.
|
|
*/
|
|
public void removeEastWall(){
|
|
this.eastWall = false;
|
|
}
|
|
|
|
/**
|
|
* @param northWall the northWall to set
|
|
*/
|
|
public void setNorthWall(boolean northWall) {
|
|
this.northWall = northWall;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the cell has a north wall or not.
|
|
* @return True if the cell has a north wall, false otherwise.
|
|
*/
|
|
public boolean hasNorthWall(){
|
|
return northWall;
|
|
}
|
|
|
|
/**
|
|
* @param southWall the southWall to set
|
|
*/
|
|
public void setSouthWall(boolean southWall) {
|
|
this.southWall = southWall;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the cell has a south wall or not.
|
|
* @return True if the cell has a south wall, false otherwise.
|
|
*/
|
|
public boolean hasSouthWall(){
|
|
return southWall;
|
|
}
|
|
|
|
/**
|
|
* @param westWall the westWall to set
|
|
*/
|
|
public void setWestWall(boolean westWall) {
|
|
this.westWall = westWall;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the cell has a west wall or not.
|
|
* @return True if the cell has a west wall, false otherwise.
|
|
*/
|
|
public boolean hasWestWall(){
|
|
return westWall;
|
|
}
|
|
|
|
/**
|
|
* @param eastWall the eastWall to set
|
|
*/
|
|
public void setEastWall(boolean eastWall) {
|
|
this.eastWall = eastWall;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the cell has a east wall or not.
|
|
* @return True if the cell has a east wall, false otherwise.
|
|
*/
|
|
public boolean hasEastWall(){
|
|
return eastWall;
|
|
}
|
|
|
|
/**
|
|
* Sets the cell as visited.
|
|
*/
|
|
public void markAsVisited() {
|
|
this.visited = true;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the cell was visited or not.
|
|
* @return True if the cell was visited, false otherwise.
|
|
*/
|
|
public boolean isVisited() {
|
|
return visited;
|
|
}
|
|
|
|
/**
|
|
* Sets the cell as the goal of the maze.
|
|
*/
|
|
public void setAsGoal() {
|
|
this.isGoal = true;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the cell is the goal of the maze it contains to.
|
|
* @return True if the cell is the goal of the maze, false otherwise.
|
|
*/
|
|
public boolean isGoal() {
|
|
return isGoal;
|
|
}
|
|
|
|
/**
|
|
* Returns the row number.
|
|
* @return the number of the row the cell is arranged to.
|
|
*/
|
|
public int getRow() {
|
|
return row;
|
|
}
|
|
|
|
/**
|
|
* Returns the column number.
|
|
* @return the number of the column the cell is arranged to.
|
|
*/
|
|
public int getColumn() {
|
|
return column;
|
|
}
|
|
|
|
/**
|
|
* Sets the cell as the start cell of the maze it contains to.
|
|
*/
|
|
public void setAsStart() {
|
|
this.isStart = true;
|
|
}
|
|
|
|
/**
|
|
* Returns whether the cell is the start of the maze it contains to.
|
|
* @return True if the cell is the start cell of the maze, false otherwise.
|
|
*/
|
|
public boolean isStart() {
|
|
return isStart;
|
|
}
|
|
}
|