Estoy empezando a aprender a hacer juegos. He creado un juego simple basado en texto donde el usuario puede caminar entre habitaciones e interactuar con los objetos en cada habitación. Sin embargo, siento que mi enfoque ha llevado a un montón de código de espagueti malo. No estoy seguro de cuál sería una buena forma de estructurar un juego como este.
Mi enfoque era tener una clase con un método para cada salón y todos los objetos e interacciones que se pudieran hacer en ese salón. Por ejemplo, este es el método para el estudio:
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 ();
}
}
}
}
No creo que este sea un enfoque que escalará; es decir, realmente no puedo escribir funciones como esta para cada habitación. Creo que usar archivos de alguna manera sería una buena estrategia para evitar la "codificación dura" que estoy haciendo actualmente. ¿Pero no estoy seguro de cómo puedo lograr eso?