public int avgStoneDistance() {
		List<Point> stones = new ArrayList<Point>();
		for( int x = 0; x < width(); x++ )
			for( int y = 0; y < height(); y++ )
				if( board[y][x].isStone() )
					stones.add(new Point(x,y));
		
		int avg = 0;
		for( Point p: stones ) {				
			int xDist = Integer.MAX_VALUE;
			for( int x = 0; x < width(); x++ )
				if( !tubes[x].isEmpty() && p.y == height() - 1 )
					xDist = Math.min(xDist, Math.abs(p.x - x) + 1);
				else if( !tubes[x].isEmpty() )
					xDist = Math.min(xDist, Math.abs(p.x - x));
			avg += xDist + ((height() - 1) - p.y);
		}
		if( avg == 0 )
			return 0;
		return avg/stones.size();			
	}