В целом проблемы, с которыми вы столкнетесь, будут зависеть от вас и ваших подходов. Друг, как правило, говорит, что комплекс прост с разных точек зрения.
Выбор графической библиотеки зависит от того, какую игру вы собираетесь писать? OpenGL - это общий выбор в таких проектах, но вы также можете использовать некоторую графическую библиотеку или напрямую использовать только собственные библиотеки Windows или xorg. Если вы собираетесь притворяться, просто используйте OpenGL.
Вопросы вы должны спросить:
Является ли C++ разумный выбор для этого проекта? Рассмотрим C и/или питон.Мой ответ на этот вопрос будет заключаться в том, что если вы просто хотите написать reversei, перейдите на python. Но если вы хотите изучить язык низкого уровня, сначала сделайте C. C++ - это расширение до C, поэтому есть чему поучиться там, чем в C. И, судя по моему мнению, чем больше вы должны учиться на C++, тем лучше.
Как вы используете графическую библиотеку? Если вы собираетесь делать причудливые эффекты, перейдите на график сцены. Вместо этого вы можете просто визуализировать сетку реверса с помощью кнопок на ней.
Как вы должны реализовать пользовательский интерфейс, следует ли использовать общие понятия пользовательского интерфейса? Обычные пользовательские интерфейсы (окна, рамки, кнопки, меню, диалоги) не так хороши, как люди думают, что есть, есть много работы по их правильной реализации. Примените граф сцены для интерпретации ввода и попробуйте различные умные способы управления игрой. Избегайте вводных меню (они являются немой и бесполезной работой), используйте аргументы командной строки для большинства конфигураций.
Я еще дать вам некоторые идеи, чтобы вы начали:
Отелло доска 8x8, 64 клеток в целом. Вы можете назначить байт на каждую ячейку, что составляет 64 байта на каждое состояние платы. Это 8 длинных ints, не очень много! Вы можете сохранить весь ход игры, и игрок не может даже заметить его. Поэтому рекомендуется использовать панель othello как неизменную структуру, которую вы копируете всегда, когда вы меняете состояние. Это также поможет вам позже с вашим ИИ и внедрением «отмены».
Поскольку один байт может хранить больше информации, чем только три состояния (ПУСТОЙ, ЧЕРНЫЙ, БЕЛЫЙ), я советую вам также предоставить два дополнительных состояния (BLACK_ALLOWED, WHITE_ALLOWED, BOTH_ALLOWED). Вы можете рассчитать эти значения при копировании нового состояния.
Алгоритм для проверки того, где вы можете поместить блок, мог идти по доске один за другим, а затем трассировать из пустых ячеек в каждое направление для регулярных выражений: B + W => W ^, W + B => B^Таким образом, вы можете инкапсулировать правила игры в простой интерфейс, который заботится обо всем этом.
Вы говорите о реализации стратегии для реверсирования или просто позволяете двум игрокам играть на компьютере? – Barth
стратегия. хороший вопрос. – EvilTeach