Каков наилучший способ организовать игру на C ++, в которой пользователь выбирает путь, чтобы продолжить путешествие? - PullRequest
2 голосов
/ 25 января 2012

Я программирую простую игру на C ++, в которой пользователь выбирает путь для продвижения в путешествии. Например:

Вы достигли развилки на дороге. Вы:

  1. Идите направо
  2. Идите налево

Затем пользователь может ввести число, чтобы выбрать путь. Эта программа может стать очень сложной и превратиться в спагетти-код, и мне интересно, как лучше организовать этот код.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Я предполагаю, что вы делаете консольное приложение.

Из-за простоты вашей программы, вероятно, было бы лучше сделать вашу программу процедурной / структурной, а не объектно-ориентированной.

Iпредложил бы разбить вашу историю на отдельные основные части, а затем назначить каждую часть функции.После завершения функция будет вызывать функцию, связанную со следующей частью истории и так далее до конца.Каждая функция будет передавать значение следующей функции (то есть строке), обозначающей решение пользователя в определенной точке.

Это обеспечивает лучшую организацию кода, минимальную сложность и делает то, что ему нужно.

Например:

3 Маленькие поросята будут разбиты на строку функцийpigA (), string pigB, string pigC () и void resolution ()

pigA () будут передаваться в "смерти" для pigB () после завершения, а pigB () будет передаваться в "смерти" для pigC().А вот pigC () в «жизнях» перейдет к разрешению () (поскольку первые две свиньи умирают, но в третьих жизнях), которое напечатало бы «Конец»

Я понимаю, что это история, а не игра,но игру аналогично можно разбить на более мелкие части, которые назначаются функциям.

0 голосов
/ 25 января 2012

Я размышлял около двух недель назад и написал очень похожую игру на C , и после некоторых ужасных спагетти «если-еще-если-еще» я в конце концов задумался о путях и выборе каждого из них. один другой массив, а затем запускает цикл for для каждого взаимодействия и проверяет массив, правильный ответ или нет, влево или вправо, а затем извлекает точку в другом массиве, чтобы выполнить следующее «движение».

Итак, у вас есть choices array и paths array, а цикл for реализует все взаимодействия с минимальным кодом. Я надеюсь, что я ясно дал понять, извините за любую английскую ошибку. Я не знаю, как это можно улучшить в C ++ , но я думаю, что это хорошая отправная точка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...