def get_cell_grid_coords(bw, bh, cw, ch):
    """
    Assuming that the game grid starts from the position [0, 0] in the top left corner,
    this method will return the coordinates of the top left corner of each cell in the grid.
    :param bw: Border width
    :param bh: Border height
    :param cw: Cell width
    :param ch: Cell height
    :return: An array of coordinates for each cell in the game grid
    """
    l1x = bw + cw + bw
    l2x = bw + 2 * cw + 2 * bw
    l3x = bw + 3 * cw + 3 * bw

    l1y = bh + ch + bh
    l2y = bh + 2 * ch + 2 * bh
    l3y = bh + 3 * ch + 3 * bh
    # point coordinates are of the form [y, x] and they start at [0, 0] in the top left corner
    return [
         [bw, bw],  [bw, l1x],  [bw, l2x],  [bw, l3x],
        [l1y, bw], [l1y, l1x], [l1y, l2x], [l1y, l3x],
        [l2y, bw], [l2y, l1x], [l2y, l2x], [l2y, l3x],
        [l3y, bw], [l3y, l1x], [l3y, l2x], [l3y, l3x],
    ]