Создание модели предметной области тика tac палец ноги

Я пытаюсь сделать модель предметной области Тика игрой Пальца ноги Tac. Я попытаюсь затем пойти через различные шаги Объединенного Процесса и более поздней реализации на него на некотором языке (C# или Java).

Я хотел бы иметь некоторую обратную связь, если я иду на правильный путь: сопроводительный текст http://dl.dropbox.com/u/6187267/shooterpics/tictactoedm.jpg

Я определил игру с двумя агентами, Player O и Player X.

  1. Я не уверен в определении обоих a Tile и a Tile State. Возможно, я должен только определить a Tile и имеют 3 возможных состояния, специализируются от него?
  2. Я не уверен, что является лучшим: иметь обоих Player O и Player X будьте связями с Tic Tac Toe или сделайте, чтобы они наследовались Player это связано с Tic Tac Toe. После дизайна, показанного на рис., в теории, у нас мог быть a Tic Tac Toe понятие с 2 Игроками O, которые не были бы корректны. Каково Ваше мнение об этом?

Кроме того, я пропускаю что-то в схеме? Хотя я не вижу никаких других агентов для Тика Палец ноги Tac, у меня должен быть кто-либо другой?

Спасибо

9
задан devoured elysium 7 June 2010 в 22:41
поделиться

2 ответа

К вашей диаграмме:

  1. состоит из отношения композиции, а не ассоциации (Тайлы не могут существовать сами по себе, состояние доски определяется состоянием ее тайлов.)
  2. Player O и Player X являются экземплярами класса Player, а не подклассами (Игрок 0 и Игрок X имеют ту же структуру, что и Игрок, у них такое же поведение, разница в идентичности и состоянии - имя на вашей диаграмме)

Когда вы говорите о модели предметной области (в контексте UP), вы должны забыть о создание системы программного обеспечения и включение только того, что важно для области игры в крестики-нолики. Подумайте, как описывается любая игра - у нее есть свои правила (подготовка, ходы, условия окончания игры, ...), игроки (с идентичностью для большего количества игр, очки, принадлежащие / контролируемые компоненты, роли ...) и физические компоненты ( доски, жетоны, фигурки, карточки ...). Если вы принимаете эти элементы как часть модели предметной области для игр и, следовательно, метамодель для вашей игры в крестики-нолики, вы должны использовать элементы, которые являются экземплярами этих элементов.

1
ответ дан 4 December 2019 в 22:27
поделиться

Альтернативной декомпозицией классов может быть замена Board и Tile на Game и Move. Игра будет содержать законную серию ходов, а ход будет содержать координаты квадрата (или другой идентификатор) и то, был ли это игрок O или X. Эта схема хранит немного больше информации, позволяя воспроизводить игру и делать резервные копии.

7
ответ дан 4 December 2019 в 22:27
поделиться