o
    Wb                     @   s   d dl Zdd ZdS )    Nc              
   C   sr  |\}}}}}}|\}}	}
}}}g }|| d }|d }t dD ];}|| }|| }|t|t|t|t|g t dD ]}|t|t|t|t|| g ||7 }q?|}q t dt|D ]K}t|| d }t|| d }t|| d }t|| d }g }t ||D ]}t ||D ]}|| || ||
 f  qq|| t| qct|dd d}|S )	aS  
    Divides main build area into 16 subgrids. Calculates the height standard deviation of all cells in each subgrid
    
    Optimally, build area should be divisible by 4
    
    Returns
    -------
    ordered arrays of 16 subgrids, from flattest to least flat, stored in array [[startx, startz, endx, endz, height_std_dev], ...]

             r      c                 S   s   | d S )Nr    )xr   r   }C:\Users\brpat\OneDrive\Documents\GitHub\CIS-5603-Minecraft-Settlement-Generation-AI\temple_mc_ai\analysis\height_analysis.py<lambda>2   s    zfind_flat.<locals>.<lambda>)key)rangeappendintlenstatZpstdevsorted)heights	buildAreastartxstartyZstartzendxendyZendzZstartx_areaZstarty_areaZstartz_areaZ	endx_areaZ	endy_areaZ	endz_areaZsubgridswidthZsubgrid_lengthijmZall_heightszr   subgrid_sortr   r   r   	find_flat   s4   "&
r   )
statisticsr   r   r   r   r   r   <module>   s    