public List<Point> getPossibleMoves(Point position) {
		List<Point> possibleMoves = new ArrayList<Point>();
		
		//lower
		if (position.x + 1 < _height) {
			possibleMoves.add(new Point(position.x + 1, position.y));
			if (position.y + 1 < _width) possibleMoves.add(new Point(position.x+1, position.y+1));
			if (position.y - 1 >= 0) possibleMoves.add(new Point(position.x+1, position.y-1));
		}
		
		//mid
		if (position.y + 1 < _width) possibleMoves.add(new Point(position.x, position.y+1));
		if (position.y - 1 >= 0) possibleMoves.add(new Point(position.x, position.y-1));
		
		//upper
		if (position.x - 1 >= 0) {
			possibleMoves.add(new Point(position.x - 1, position.y));
			if (position.y + 1 < _width) possibleMoves.add(new Point(position.x-1, position.y+1));
			if (position.y - 1 >= 0) possibleMoves.add(new Point(position.x-1, position.y-1));
		}
		
		return possibleMoves;
	}