Правильно ли я нарисовал план ООП игры шашки?

Изучаю ООП. Хотел попробовать написать игру шашки для двоих на javascript. И накидал на программе xmind так скажем архитектуру игры. Хотелось бы узнать ваще мнение5e4ee639159e9770570557.png
  • Вопрос задан
  • 1870 просмотров
Пригласить эксперта
Ответы на вопрос 6
Раз изучаете ООП, может, сделать дамку дочерним классом, наследующим что-то от просто-шашки, но переопределяющим некоторые свойства и методы?

В приведённой схеме не учитана возможность цепочек «атакующих» ходов. В т.ч. с трансформацией в дамку в процессе обжорства )

Можно ввести сущность «ход». Тогда можно складывать ходы в массив игры. Сохранять игру, воспроизводить её. Перехаживать! )

Протяженность во времени: если делать красиво, то будут анимации перехода шашки между клетками. В это время нельзя вмешиваться, например. Хотя, вероятно, это пока излишнее усложнение.

Доске понядобятся методы инициализации, может загрузки позиции, оценки позиции.
Ответ написан
@Dmtm
Android
ооп нужны абстракции!
на фигуру! (сегодня они шашки, а завтра понадобятся го)
на ход! на доску! (шашки бывают и стоклеточные)
на координаты - чтобы можно было к сферическим перейти!
и все прикрыть интерфейсами, во славу сото...ооп!
Ответ написан
Комментировать
myks92
@myks92
Нашёл решение — пометь вопрос ответом!
В целом не плохо. Но бы сделал по другому.

1. Свойства не выносить отдельно в схеме. Не совсем понятно что вы изменяете в методах. Какие условия при изменении. Какие параметры. И т. д. Свойства нужны больше для проектирования БД.

Например лучше так:
Подвесить клетку
- цвет (string(6))

2. Шашка это неотъемлемая часть доски. Поэтому модификация шашек будет из сущности доски.

Для примера можете посмотреть как строится любое API. Везде есть метотоды и описание что они делают. Какие параметры принимают. Какой результат возвращают. Какого типа и так далее. Зайдите VK API сразу поймёте. Вам нужно сделать некое подобие API.

В остальном нормально)
Ответ написан
php666
@php666
PHP-макака
Изучаю ООП. Хотел попробовать написать игру шашки

1. Изучать ООП на Жс не лучшая идея, возьми тот же пхп.
2. Писать столь сложную игру, как шашки, да ещё и на ООП - не самая тривиальная задача для обучения
Ответ написан
Комментировать
@GLeBaTi
СостояниеКлетки{
БелаяШашка,
ЧернаяШашка,
БелаяШашкаДамка,
ЧернаяШашкаДамка,
НетШашки
}

СостояниеИгры{
Старт,
Жеревьевка,
ХодБелых,
ХодЧерных,
ИграЗакончена,
}

Переменные:
"Доска" тип: СостояниеКлетки[8][8];
"Этап" тип: СостояниеИгры
"Игрок1"
"Игрок2"

Методы:
SetЭтап(СостояниеИгры) //Тут можно использовать паттерн "Состояние"

OnStart()
-ИнициализироватьИгроков();

OnЖеревьевка()
-ЗадатьЦветаИгроков()
-ЗаполнитьДоску()

OnХод(Player, X, Y)
-ТутЛогикаХода (удаление фишек, перемещение и т.п.)

OnИграЗакончена()
-ПодсчитатьИВывестиРезультаты()
Ответ написан
Комментировать
@robomakerr
Мне кажется, для такой простой архитектуры не нужно ООП.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы