Итак, я пытаюсь создать текстовую игру с пользовательским интерфейсом (в отличие от истинного текста, основанного на синтаксическом разборе и всех забавных вещах) это в основном RPG. С этой целью в игре есть куча разных событий, которые могут произойти (но не гарантированы и не встречаются в любом общем порядке), и мне интересно, как наиболее эффективный способ кодировать это.Как закодировать игровые события в текстовой игре на C#
В настоящее время я думаю, что у меня есть статический класс GameState, который, имея другую информацию, будет иметь массив и перечисление внутри них. Массив будет , вероятно, быть байтами для разговора или выборами с несколькими необязательными событиями, где 0 будет означать, что событие не произошло, а затем число 1 - X будет представлять, какая опция из X была выбрана. Что-то вроде этого:
public enum GameEvents{
Event 1,
Event 2,
Event 3 };
public static byte[] GameEventStates = new byte[Enum.GetNames(typeof(GameEvents)).Length];
Так что в событиях, и прочее, я был бы в состоянии сделать линии, как:
if(GameState.GameEventStates[GameState.GameEvents.Event2] == 1)
{
Stuff Here;
}
или
GameState.GameEventStates[GameState.GameEvents.Event4] = 1;
(Примечание: для строго «Has Seen ', было бы 0 за то, что он не видел, и 1 за то, что видел его).
Часть этого просто чувствует себя вынужденным, хотя, как будто есть более элегантный способ, о котором я просто не могу думать. Я не знаю, что было бы, однако, что до сих пор позволяет мне
A) имеет глобальный доступ к нему для изменения значения, как события происходят и позволяют чеки против их появлений,
B) легко добавить больше событий, так как содержимое игры расширяется со временем, и
C) легко сохраняет и загружает значения в/из файла сохранения.
Это действительно лучший способ сделать это? Я первый, кто признал, что могу придумать ... «творческие» способы, которые на самом деле не так хороши для решения проблем. Второе мнение действительно будет оценено. Заранее спасибо.
пожалуйста, простите мое невежество ... что именно это 'текст на основе, как игра с UI'? –
Я не очень хорош в C# (я все еще участвую), но я думаю, вы могли бы сделать много методов в отдельном классе событий, которые называются номерами, и вызвать метод, основанный на случайном числе. –
@HighCore Я думаю, он хочет показать, что происходит как текст (текстовое поле), но есть кнопки для таких действий, как «смотреть», «использовать», .... Поэтому вам не нужно вводить «использовать ключ с красной дверью». –