Язык программирования: C++ Для себя Нужна помощь в написании программы с использованием классов. ООП Нужна помощь в написании и понимании логики программы. С устройством классов я знаком. Крестики-нолики. Разработать два класса: игрок, осуществляющий ходы случайным образом, и “думающий” игрок (можно простейший алгоритм, не в нём суть задания). У игроков есть метод ПридуматьХод, в который передаётся текущее состояние игры (объект класса Доска), выдающий пару координат, соответствующую ходу. У игроков есть имя в виде текстовой строки. Создать класс Игра, моделирующий матч между несколькими игроками (не более пяти), которые ходят знаками x, o, #, $, %. Добавить в Игра метод СделатьХод с необязательным параметром ПараКоординат, соответствующей ходу. Если пара не задана, ход выбирается автоматически в соответствии с встроенной стратегией игр ка. Реализовать возможность полноценной пошаговой игры, моделируемой классом Игра. Предусмотрите возможность осуществления очередного хода как пользователем, так и логикой, встроенной в соответствующий класс игрока. Класс СлучайныйИгрок Атрибуты: имя; знак, которым он ходит. Методы: получения имени, получения знака, ПридуматьХод. Класс УмныйИгрок Атрибуты: имя; знак, которым он ходит. Методы: получения имени, получения знака, ПридуматьХод. Класс Доска Атрибуты: матрица клеток, размеры, признак пустого поля (знак). Методы: получения состояния ячейки по её координатам, получения размера по горизонтали, получения размера по вертикали, получения признака пустого поля, установки знака по заданным координатам. Класс Игра Атрибуты: доска; массив СлучайныхИгроков; массив УмныхИгроков; номер игрока, который сейчас ходит. Методы: добавления СлучайногоИгрока, добавления УмногоИгрока, удаления игрока по имени, выполнения хода автоматически (без параметров), выполнения хода по заданным координатам, получения победителя, получения выполняющего ход игрока.