private boolean validMove(int x, int y, ArrayDeque<Point> path){
		if(avatar.getAvilableMoves() == 0)
			return false;
		//Return false if it out of bounds of the map array.
		if(!inBounds(x,y))
			return false;
		//Returns false if the tile does not correspond to a accessible square
		if(!worldMap[x][y].isIsTile())
			return false;
		//Return false if there is another player in that square
		if(gameBoard[x][y] instanceof UnitPlayer)
			return false;
		//Return true if there is no path yet calculated for that square
		if(worldMap[x][y].getPath() == null)
			return true;
		// Return false if the path calculated already for that square is more
		// efficient than this one
		if(worldMap[x][y].getPath().size() < path.size())
			return false;
		//Otherwise return true
		return true;
	}