Ich fange gerade erst an zu lernen, Spiele zu machen. Ich habe ein einfaches textbasiertes Spiel erstellt, in dem der Benutzer zwischen Räumen herumlaufen und mit den Objekten in jedem Raum interagieren kann. Ich habe jedoch das Gefühl, dass mein Ansatz zu einem Haufen schlechten Spaghetti-Codes geführt hat. Ich bin mir nicht sicher, wie man ein solches Spiel gut strukturieren kann.
Mein Ansatz war es, eine Klasse mit einer Methode für jeden Raum und alle Objekte und Interaktionen zu haben, die in diesem Raum durchgeführt werden konnten. Dies ist beispielsweise die Methode für die Studie:
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 ();
}
}
}
}
Ich glaube nicht, dass dies ein skalierbarer Ansatz ist. Das heißt, ich kann solche Funktionen nicht für jeden Raum schreiben . Ich glaube, dass die Verwendung von Dateien in irgendeiner Weise eine gute Strategie wäre, um die "harte Codierung" zu vermeiden, die ich derzeit mache. Aber ich bin mir nicht sicher, wie ich das erreichen kann?