public AState getNeighbor(AState state, Direction dir)
	{
		int x = state.getX() + dir.X();
		int y = state.getY() + dir.Y();
		
		if(x < 0 || x >= this.columnsCount() || y < 0 || y >= this.rowsCount())
			return null;
		
		return this.map[y][x];
	}