Я только начинаю учиться делать игры. Я создал простую текстовую игру, в которой пользователь может ходить между комнатами и взаимодействовать с объектами в каждой комнате. Тем не менее, я чувствую, что мой подход привел к куче плохого кода спагетти. Я не уверен, каким будет хороший способ структурировать такую игру.
Мой подход состоял в том, чтобы иметь один класс с методом для каждой комнаты и всех объектов и взаимодействий, которые можно было бы выполнить в этой комнате. Например, это метод исследования:
public static void Study()
{
bool studyexited = false;
while (!studyexited) {
string usercommand = Console.ReadLine ();
usercommand.ToLower ();
switch (usercommand) {
case "turn left":
GameEventText.StudyLeft ();
break;
case "turn right":
GameEventText.StudyRight ();
break;
case "go forward":
Notes firstsetofclues = new Notes ("First Note");
GameEventText.StudyFront ();
string firststudycommand = Console.ReadLine ();
firststudycommand.ToLower ();
if (firststudycommand == "read note") {
firstsetofclues.Firstnotereading ();
}
Console.WriteLine ("Picking up this note would prove valuable");
string secondstudycommand = Console.ReadLine ();
secondstudycommand.ToLower ();
if (secondstudycommand == "pick up note") {
if (MainClass.PlayerInventory.AddItem (firstsetofclues))
{
Console.WriteLine ("The note has been added to your inventory");
} else {
Console.WriteLine ("Your inventory is full");
}
MainClass.PlayerInventory.Inventorydisplay ();
}
}
}
}
Я не чувствую, что это подход, который будет масштабироваться; то есть я не могу написать такие функции для каждой комнаты. Я считаю, что использование файлов каким-либо образом было бы хорошей стратегией, чтобы избежать «жесткого кодирования», которое я сейчас делаю. Но я не уверен, как мне этого добиться?