public int[] getCurrentSituation() {
		int[] situation = new int[5];
		
		// observe cell to the north
		if (current.isAgainstNorthWall()) {
			situation[0] = Site.WALL;
		}
		else {
			if (grid[curY - 1][curX].hasCan()) {
				situation[0] = Site.CAN;
			}
			else {
				situation[0] = Site.EMPTY;
			}
		}
		
		// observe cell to the south
		if (current.isAgainstSouthWall()) {
			situation[1] = Site.WALL;
		}
		else {
			if (grid[curY + 1][curX].hasCan()) {
				situation[1] = Site.CAN;
			}
			else {
				situation[2] = Site.EMPTY;
			}
		}
		
		// observe cell to the east
		if (current.isAgainstEastWall()) {
			situation[2] = Site.WALL;
		}
		else {
			if (grid[curY][curX + 1].hasCan()) {
				situation[2] = Site.CAN;
			}
			else {
				situation[2] = Site.EMPTY;
			}
		}
		
		// observe cell to the west
		if (current.isAgainstWestWall()) {
			situation[3] = Site.WALL;
		}
		else {
			if (grid[curY][curX - 1].hasCan()) {
				situation[3] = Site.CAN;
			}
			else {
				situation[3] = Site.EMPTY;
			}
		}
		
		// observe current cell
		if (current.hasCan()) {
			situation[4] = Site.CAN;
		}
		else {
			situation[4] = Site.EMPTY;
		}
		
		return situation;
	}