export type TileCoordinates = { x : number ; y : number ; } ; export type SlotLocation = { slot : number ; } ; export const createTileCoordinates = ( x , y ) : TileCoordinates => ( { x , y } ) ; export const getDelta = ( a , b ) => ( { x : Math . abs ( a . x - b . x ) , y : Math . abs ( a . y - b . y ) } ) ; export const getDistance = ( a , b ) => { const { x , y } = getDelta ( a , b ) ; return x + y ; } ; export const Directions = { UP : { x : 0 , y : - 1 } , RIGHT : { x : 1 , y : 0 } , DOWN : { x : 0 , y : 1 } , LEFT : { x : - 1 , y : 0 } } ; param from param to export const getRelativeDirection = ( from , to ) => { if ( from . x < to . x ) { return Directions . RIGHT ; } if ( from . x > to . x ) { return Directions . LEFT ; } if ( from . y < to . y ) { return Directions . DOWN ; } if ( from . y > to . y ) { return Directions . UP ; } return { x : 0 , y : 0 } ; } ; export enum TileType { BOARD , BENCH }