o
    WVb                     @   s    d dl mZ d dlZdd ZdS )    )	interfaceNc              
   C   sz  |\}}}}}}|\}}	}
}}}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}t| |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   z:\Documents\Temple_master\Spring_2022\ai\assignments\CIS-5603-Minecraft-Settlement-Generation-AI\temple_mc_ai\analysis\moore.py<lambda>3   s    zfind_flat.<locals>.<lambda>)keyN)rangeappendintlenstatZpstdevsortedprint)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   Zsubgrid_sortr   r   r	   	find_flat   s6   "&
r   )gdpcr   INTF
statisticsr   r   r   r   r   r	   <module>   s    