using HorizonSideRobots
include("../basics.jl")


md"""
            На прямоугольном поле произвольных размеров расставить маркеры в виде "шахматных" клеток, начиная с юго-западного угла поля, когда каждая 
            отдельная "шахматная" клетка имеет размер n x n клеток поля (n - это параметр функции). Начальное положение Робота - произвольное, 
            конечное - совпадает с начальным. Клетки на севере и востоке могут получаться "обрезанными" - зависит от соотношения размеров поля 
            и "шахматных" клеток. (Подсказка: здесь могут быть полезными две глобальных переменных, в которых будут содержаться текущие декартовы 
            координаты Робота относительно начала координат в левом нижнем углу поля, например)
"""


 """Решение задачи 12"""
 function solve_12!(r, n)
    (M, N), (I, J) = get_field_size_and_position!(r)
    cells = Set()
    visited = Set()
    count = 0

    # Отбирает клетки поля подходящие для раскраски и пушит в {cells}
    for t in 1:M
        i = 1 + M - t
        if (M-i) % (2*n) < n
            count = 0
        else
            count = n
        end
        for j in 1:N
            if count < n
                push!(cells, (i, j))
            elseif count == 2*n
                push!(cells, (i, j))
                count = 0
            end
            count += 1
        end
    end

    mark_some_cells_with_dfs!(r, visited, (I, J), false, cells)

    show(r)
end