Я создаю текстовую приключенческую игру и хотел бы создать несколько «глобальных» команд и ответов, которые будут работать где угодно, где бы вы ни находились. Для глобальных ответов, если мы посмотрим на этот код:
Module Module1
Private Property answer1 As String
Private Property answer2 As String
Sub Main()
Console.WriteLine("Welocome to the training grounds!")
Console.WriteLine("What would you like to do? 1. I would like to train on dummies")
answer1 = Console.ReadLine()
Console.WriteLine()
If answer1 = "1" Then
Console.WriteLine("Okay what now?")
answer2 = Console.ReadLine
If anwser2 = "1" Then Console.WriteLine("New option")
End If
End Sub
Теперь, как вы видите, мне нужно создать строку для каждого нового пользовательского ввода. Я пытался сделать Public answer As String = Console.ReadLine
, а затем заставить вещи реагировать на «ответ», но если бы я повторно использовал ключевое слово, такое как номер 1, в коде вверху, программа не ждала бы ввода пользователя и просто пошла бы по пути номер 1. Первый вариант похоже на кучу спагеттического кода, а второй вариант, похоже, не работает, или я сам не заставляю его работать, поэтому любые советы здесь были бы хороши.
Я также хочу знать, возможно ли создать глобальную строку или что-то в этом роде. Скажите, что независимо от того, был ли я в точке, где я должен был ввести данные для ответа 1 или 2, если бы я набрал «инвентарь», это открыло бы другую подпрограмму под названием «инвентарь». Теперь, если возможно, я хочу сделать это без необходимости иметь if answer = inventory then Inventory()
.
Заранее спасибо всем ^^
Следуя совету, данному моему b.pell, я смог создать подпрограмму «GameCommand», но я не столкнулся с проблемой, как внедрить ее в саму игру/сделать ее доступной, не нарушая игровой процесс. Я также не совсем уверен, как написать команду, которая изменит что-то в GameCommand.vb (скажем, если игрок получит предмет, как мне добавить его в список инвентаря?)
Module Module1
Sub Main()
Dim gc As New GameCommand
If Console.ReadLine = "Go to dummy" Then Dummy() Else
CallByName(gc, Console.ReadLine, CallType.Method, "")
End Sub
Sub Dummy()
Console.WriteLine("I am dummy hear me roar")
Return
End Sub
End Module
Файл GameCommand.vb такой же, как и в комментарии p.bells.