"""
Задание 5.
Реализуйте структуру "стопка тарелок". Мы можем складывать тарелки в стопку и при превышении некоторого значения
нужно начать складывать тарелки в новую стопку. Структура должна предусматривать наличие нескольких стеков.
Создание нового стека происходит при достижении предыдущим стеком порогового значения.
Реализуйте по аналогии с примером, рассмотренным на уроке, необходимые методы, для реализации это структуры,
добавьте новые методы (не рассмотренные в примере с урока) для реализации этой задачи.
После реализации структуры, проверьте ее работу на различных сценариях

Подсказка:
Отдельные стопки можно реализовать через:
1) созд-е экземпляров стека (если стопка - класс) или
2) lst = [[], [], [], [],....]
"""

from my_class_module import StackClass
import copy


def plates_stack(amount, size):
    num_stack = StackClass()  # общее количество стопок тарелок
    new_stack = StackClass()  # отдельная стопка тарелок

    result = amount // size  # узнаем количество стопок
    res = amount % size  # узнаем количество тарелок в последней (неполной) стопке
    for i in range(result):  # формируем целые стопки тарелок
        for k in range(size):  # заполняем их до максимального размера
            new_stack.push_in(1)
        num_stack.push_in(copy.deepcopy(new_stack.get_value()))
        new_stack.clear_value()
    for j in range(res):  # формируем неполную стопку
        new_stack.push_in(1)
    num_stack.push_in(copy.deepcopy(new_stack.get_value()))

    return num_stack.get_value()  # выводим результат


print(plates_stack(45, 6))  # общее количество тарелок и размер стопки
# мало практики, хотел сделать как дочерний класс, но сегодня бы не успел уже, вернусь к решению позхе
