tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
1386
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    pipistrello pipistrello ist offline Mitglied
    Registriert seit
    Jan 2011
    Ort
    Köln (NRW)
    Beiträge
    16
    hi zusammen. wollte mal fragen, ob mir jemand von euch eine Hilfestellung geben kann, da ich noch nicht allzu lange programmiere und sehr viel Übung brauche.

    Ich habe mal ein Bild angehängt, in dem mein Klassenentwurf zu sehen ist.

    Vielleicht könntet ihr ja mal einen "Blick" drauf werden, und posten was man in Sachen Kohäsion / Kopplung besser machen muss, da ich wie bereits gesagt noch nicht allzu lange programmiere..

    Ich wäre euch zumindest sehr dankbar.

    hier mal die Hauptklasse Game zum besseren Verständnis:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace textAdventure2
    {
        public class Game
        {
            private Spieler spieler;
            private EingabeVerarbeitung eingabeVerarbeitung;
            private Befehlswörter befehlswörter;
            private Raum aktuellerRaum, wohnungsausgang;
            private Boolean hilfsvariable;
            private CenterText consoleWrite = new CenterText();
     
            public static void Main()
            {
                Console.Title = "RABI's adventure";
                Console.SetWindowSize(72, 32);
     
                Game spiel = new Game();
     
                spiel.initialisiere();
                spiel.start();
            }
            private void initialisiere()
            {
                spieler = new Spieler();
                eingabeVerarbeitung = new EingabeVerarbeitung();
                befehlswörter = new Befehlswörter();
                initialisiereRäume();
                willkommensTextAusgeben();
                hilfsvariable = false;
            }
            private void initialisiereRäume()
            {
                Raum küche, flur, bad, wohnzimmer;
     
                //Räume erstellen
                küche = new Raum("Küche", "in der Küche", new List<Gegenstand>(new Gegenstand[] { new Gegenstand("eine ", "Couch", "Sieht schon ziemlich alt aus...", 65), new Gegenstand("einen ", "Tisch", "Bricht bald bestimmt auseinander...", 20) }));
                flur = new Raum("Flur", "im Flur", new List<Gegenstand>(new Gegenstand[] { new Gegenstand("eine ", "Komode", "Sie hat 2 Schubladen !", 5), new Gegenstand("ein ", "Telefon", "Es ist ein altes Schnurtelefon...", 1) }));
                bad = new Raum("Bad", "im Bad", new List<Gegenstand>(new Gegenstand[] { new Gegenstand("eine ", "Toilette", "Es liegt noch ******** drin,_jemand hat vergessen die Spülung zu betätigen !", 40) }));
                wohnzimmer = new Raum("Wohnzimmer","im Wohn-, und Schlafzimmer" , new List<Gegenstand>(new Gegenstand[] { new Gegenstand("ein ", "Bett", "Sieht noch so aus als wäre grade jemand aufgestanden...",40), new Gegenstand("einen ", "Schlüssel","Ahh...da sind ja meine Hausschlüssel !", 1) }));
                wohnungsausgang = new Raum( "Ausgang", "im Treppenhaus", new List<Gegenstand>(new Gegenstand[] { new Gegenstand("", "Treppen", "Ganz viele Treppen verteilt auf 4.Etagen !!",1000) }));
     
                //Durchgänge setzen
                küche.setzeDurchgänge(new List<Raum> { flur });
                bad.setzeDurchgänge(new List<Raum> { flur });
                flur.setzeDurchgänge(new List<Raum> { küche, bad, wohnzimmer, wohnungsausgang });
                wohnzimmer.setzeDurchgänge(new List<Raum> { flur });
                wohnungsausgang.setzeDurchgänge(new List<Raum> { flur });
     
                //Ausgang sperren
                wohnungsausgang.setzeTür (new Tür ());
     
                //aktuellen Raum setzen
                aktuellerRaum = bad; 
            } 
            private void start()
            {
                Boolean befehlswortGültig = false;
     
                while (hilfsvariable == false)
                {
                    //Wenn der Ausgang bzw. die Wohnungstür verlassen wurde, das Spiel beenden
                    if (aktuellerRaum == wohnungsausgang)
                    {
                        hilfsvariable = true;
                        aktuellerRaum.beschreibeRaum();
                        gameOver();
                        break;
                    } 
     
                    aktuellerRaum.beschreibeRaum();
                    aktuellerRaum.zeigeDurchgänge();
                    eingabeVerarbeitung.inputEinlesen(spieler.erteiltBefehl());
                    befehlswortGültig = eingabeVerarbeitung.prüfeBefehlswort(befehlswörter.gibEinträgeInListe());
     
                    if (befehlswortGültig) 
                        befehlAusführen(eingabeVerarbeitung.gibBefehlswort());
                    else
                        befehlsWortVerweigern();
     
                    Console.Clear();
                }
            }
            private void befehlAusführen(String befehlswort)
            {
                Interaktion interaktion = new Interaktion();
                Gegenstand gegenstand, gegenstandInventar;
                Raum durchgang;
                Tür durchgangHatVersperrteTür;
              
                gegenstand = aktuellerRaum.gibGegenstandWennBekannt(eingabeVerarbeitung.gibWortliste());
                gegenstandInventar = spieler.gibGegenstandAusInventarWennBekannt(eingabeVerarbeitung.gibWortliste());   //wenn der Spieler den Gegenstand nicht besitzt wird NULL zurückgeliefert !
                durchgang = aktuellerRaum.gibDurchgangWennBekannt(eingabeVerarbeitung.gibWortliste());    //wenn der durchgang nicht existiert, wird NULL zurückgeliefert !
     
                if (durchgang == null)
                    durchgangHatVersperrteTür = null;    //und wenns keinen Durchgang gibt, gibts auch keine verperrte Tür... 
                else
                    durchgangHatVersperrteTür = durchgang.hatVersperrteTür();
     
                if ((befehlswort == "betrete") && (durchgang != null) && (durchgangHatVersperrteTür == null)) //wenn ein durchgang exisitert und keine versperrte Tür vorhanden ist
                    aktuellerRaum = interaktion.wechsleRaum(durchgang);
                else if ((befehlswort == "betrete") && (durchgang != null) && (durchgangHatVersperrteTür != null) && (spieler.besitztSchlüssel()))//wenn ein durchgang existiert, eine verperrte Tür im Weg ist und der Spieler den Schlüssel besitzt
                    aktuellerRaum = interaktion.wechsleRaum(durchgang);
                else if ((befehlswort == "untersuche") && (gegenstand != null) )
                    interaktion.untersucheGegenstand(gegenstand);
                else if ((befehlswort == "nimm") && (gegenstand != null))
                    interaktion.gegenstandAufnehmen(gegenstand, aktuellerRaum.gibListeGegenstände(), spieler.gibInventarliste());
                else if ((befehlswort == "verwerfe") && (gegenstandInventar != null))
                    interaktion.gegenstandAblegen(gegenstandInventar, aktuellerRaum.gibListeGegenstände(), spieler.gibInventarliste());
                else if ((befehlswort == "inventar") && (eingabeVerarbeitung.gibWortliste().Count == 1))
                    interaktion.zeigeInventar(spieler.gibInventarliste());
                else if ((befehlswort == "hilfe") && (eingabeVerarbeitung.gibWortliste().Count == 1))
                    interaktion.hilfeAusgeben();
                else if ((befehlswort == "beende") && (eingabeVerarbeitung.gibWortliste().Count == 1))
                    hilfsvariable = interaktion.spielBeenden(hilfsvariable);
                else
                    //wenn der Durchgang versperrt ist
                    if (durchgangHatVersperrteTür != null)
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("\n\n");
                        consoleWrite.centerText("Und wie soll ich wieder reinkommen,_wenn ich meine Hausschlüssel nicht mitnehme ****_Soll ich dann etwa die Tür eintreten oder was ?!");
                        Console.ReadKey();
                        Console.ResetColor();
                    }
                    else
                        zweitesWortVerweigern(); // "durchgangHatVersperrteTür" besser an diese Methode übergeben ?
            }
            private void befehlsWortVerweigern()
            {
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.Write("\n\n\n");
                consoleWrite.centerText("Den Befehl versteh ich nicht ! Nochmal bitte...");
                Console.ResetColor();
                Console.ReadKey();
            }
            private void zweitesWortVerweigern()
            {
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.Write("\n\n");
                consoleWrite.centerText("Wie meinst du das ?");
                Console.ResetColor();
                Console.ReadKey();
            }
            private void willkommensTextAusgeben()
            {
                Console.Write("\n\n\n\n");
                consoleWrite.centerText("Ich begrüsse dich zu meinem kleinem Buden-Adventure...");
                Console.ForegroundColor = ConsoleColor.DarkGreen;
                Console.Write("\n\n\n\n");
                consoleWrite.centerText("Dieses kleine Programm ermöglicht es dir,");
                consoleWrite.centerText("verschiedene Räüme zu erkunden, ");
                consoleWrite.centerText("Gegenstände zu untersuchen und aufzusammeln.");
                Console.Write("\n");
                consoleWrite.centerText("Dein Ziel ist ganz einfach...");
                Console.Write("\n");
                consoleWrite.centerText("Du musst die Wohnung verlassen,");
                consoleWrite.centerText("ohne dabei deine Hausschlüssel zu vergessen ");
                consoleWrite.centerText("da du dich sonst aussperrst... ");
                Console.Write("\n\n\n\n");
                Console.ResetColor();
                Console.ForegroundColor = ConsoleColor.DarkMagenta;
                consoleWrite.centerText("Du kannst jederzeit den Befehl : HILFE benutzen,");
                consoleWrite.centerText("wenn du grade nicht weiterweisst."); 
                Console.ResetColor();
                Console.Write("\n\n\n\n");
                consoleWrite.centerText("Wenn alles klar ist, dann drücke eine Taste....");
                Console.ReadKey();
                Console.Clear();
            }
            private void gameOver()
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("\n\n\n\n\n");
                consoleWrite.centerText ("Herzlichen Glückwunsch, du hast die Wohnung verlassen,_ohne dabei deinen Hausschlüssel zu vergessen !");
                Console.Write("\n");
                consoleWrite.centerText ("Somit hast du die Vorgabe von diesem kleinem_ Programm mit Bravur gemeistert.");
                Console.Write ("\n\n\n");
                Console.ForegroundColor = ConsoleColor.DarkCyan;
                consoleWrite.centerText("Übrigens: Nebenbei konntest du in diesem Programm Gegenstände_ untersuchen, diese aufsammeln und auch ablegen. Wahnsinn oder ****_Ausserdem hat dir das Programm ermöglicht_Räume zu wechseln und dein Inventar aufzurufen...");
                Console.ReadKey();
            }
        }
    }
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken hilfestellung für ein kleines testprogramm c#-adventurebude.jpg  
    Angehängte Dateien Angehängte Dateien
    Geändert von pipistrello (15.02.11 um 16:47 Uhr)
     

Ähnliche Themen

  1. Berechnung - Hilfestellung
    Von Sasser im Forum PHP
    Antworten: 7
    Letzter Beitrag: 03.10.08, 19:15
  2. Hilfestellung zu DLL schreiben
    Von brewal im Forum C/C++
    Antworten: 15
    Letzter Beitrag: 30.01.08, 20:35
  3. Hilfestellung bei Schleife
    Von chill0r55555 im Forum PHP
    Antworten: 8
    Letzter Beitrag: 08.02.07, 14:08
  4. Hilfestellung...
    Von Waterstorm im Forum Cinema 4D
    Antworten: 4
    Letzter Beitrag: 08.09.03, 16:34