// -- Starten eines Ortes public void LosGehts() { AusfuehrlicheBeschreibungAusgeben(); WegbeschreibungAusgeben(); string kommando; do { // Was will der Spieler tun? Console.WriteLine("What do you want to do?"); kommando = Console.ReadLine(); // Prüfe ob das kommando als Bewegung erkannt wird if (verknuepfungen.ContainsKey(kommando)) { // Juchu, es ist ein Richtungskommando // Hole den Ort, zu dem dieses Kommando führt Ort neuer_ort = verknuepfungen [kommando]; // Ort neuer_ort = verknuepfungen.VGet( kommando ); Console.WriteLine(); // Leerzeile ausgeben neuer_ort.LosGehts(); // neuen Ort ausführen } else if (IstCustomCommand(kommando)) { // Juchu, es ist ein Custom Command BehandleCustomCommand(kommando); } else if (IstDingKommando(kommando)) { // Juchu, es ist ein Kommando mit Ding BehandleDingKommando(kommando); } else if (kommando == "things") { // Es ist ein allgemeines Kommando DingListeAusgeben(); } else { Console.WriteLine("Hmmm... that seems to be impossible around here."); Console.WriteLine(); } } while (!verknuepfungen.ContainsKey(kommando)); }
// Methode gibt die Liste der Richtungs- // kommandos und die damit erreichbaren Räume // aus // -| public void WegbeschreibungAusgeben() { // Danach gangbare Wege anzeigen // Vorgehensweise: // Schlaufe durch alle Einträge in verknuepfungen // Ausgabe // - richtung, in die man gehen kann // - name des Ortes, der dann erreicht wird foreach (var verknuepfung in verknuepfungen) { string richtung = verknuepfung.Key; Ort ort = verknuepfung.Value; string name = ort.name; Console.WriteLine("To the " + richtung + " you see " + name); } }
// -- Verknüpfung von Orten // Parameter sind - das Schlüsselwort, das weiter führt // - eine Instanz des Ortes, wohin die Verknüpfung führt public void VerknuepfeOrt(string in_schluessel, Ort in_neuer_ort) { //verknuepfungen.Add( in_schluessel, in_neuer_ort ); verknuepfungen[in_schluessel] = in_neuer_ort; }