Ответ Мацека хорош в том, что касается установки колоды.
Вы также спрашивали о других сущностях.
Вы, вероятно, хотите четырех "Игроков". Каждый игрок может управляться человеком или машиной.
Чтобы реализовать человека-игрока, вы взаимодействуете с экраном / мышью / клавиатурой; чтобы реализовать игроков, контролируемых машиной, у вас есть рука, и вы можете видеть несколько центральных карт на столе (все игроки должны знать центральный стол, на котором находятся любые карты, которые будут на столе).
Отсюда логика основана на том, в какую игру вы играете.
Как только ваш «Игрок» (ИИ) получает ход (например, для вашего объекта игрока вызывается метод takeTurn
), он должен исследовать свои карты и принимать правильные решения - брать карты из стопок на столе. или положить карты из его руки на стол. (Таблица почти наверняка имеет как минимум два стека, к которым игрок может получить доступ - «Дро» и «Сброс».)
Когда у игрока-человека вызывается метод takeTurn
, он должен взаимодействовать с экраном, обновляя руку игрока, позволяя ему рисовать и сбрасывать.
Когда каждый игрок завершает свой ход, он должен вернуться. Он не может напрямую вызвать следующего игрока (иначе вы начнете собирать стек), поэтому вам нужна некоторая форма контроля хода, которая может вызывать игроков по порядку. Этот централизованный контроль также препятствует тому, чтобы игроки знали друг о друге, в котором они не должны на самом деле (одна из лучших тактик разработки ОО состоит в том, что каждый объект должен знать как можно меньше о других объектах).
... Все еще думаю ... Я могу добавить еще ...