Und wieder habe ich eine Aufgabe für Spieleprogrammierer abgearbeitet. Diesmal ging es um die Grundlagen einer Klasse in C++. Um das etwas zu verinnerlichen, sollte man eine C++ Klasse schreiben, die ein Raumschiff erzeugt und wieder zerstört. Das ganze natürlich stark vereinfacht. Als Ausgangssituation waren die member Variablen für eine X und Y Koordinate, Energie und Geschwindigkeit gegeben. In der C++ Klasse sollte es die drei folgenden Funktionen geben:
Parameterloser Konstruktor: Hier sollen alle Variablen außer Energie mit 0 initialisiert werden. Energie bekommt den Wert 1000.
Parametrisierter Konstruktor: Hier soll eine X und eine Y Koordinate mitgegeben werden. Diese Koordinaten müssen für X zwischen 0 und 800, für Y zwischen 0 und 600 liegen. Wird der Bereich überschritten, sollen die Koordinate mit 0 initialisiert werden.
Destruktor: Hier soll einfach nur der Text, Schiff zerstört ausgegeben werden.
Der Programmablauf auf der Konsole sieht wie folgt aus: Es soll ein Spieler Raumschiff mit dem parameterlosen Konstruktor erzeugt werden. Anschließend soll ein Gegner Raumschiff mit dem parametrisierten Konstruktor erzeugt werden. Zu guter letzt, sollen beide Raumschiffe wieder zerstört werden.
Meine kleine Lösung dafür sah dann wie folgt aus:
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 | #include "iostream" using namespace std; class CRaumschiff { private: int m_xPos ; int m_yPos; int m_Energie; float m_fGeschwindigkeit; public: CRaumschiff(); CRaumschiff(int xKoord, int yKoord); ~CRaumschiff(); }; CRaumschiff::CRaumschiff() { m_xPos = 0; m_yPo = 0; m_Energie = 1000; m_fGeschwindigkeit = 0.0f; cout << "Raumschiff ohne Parameter erstellt\n" << endl; } CRaumschiff::CRaumschiff(int xKoord, int yKoord) { if (xKoord >= 0 && xKoord <=800 && yKoord >= 0 && yKoord <=600) { m_xPos = xKoord; m_yPos = yKoord; m_Energie = 1000; m_fGeschwindigkeit = 0.0f; cout << "Koordinaten gesetzt. Raumschiff mit Parametern erstellt" << endl; } else { m_xPos = 0; m_yPos = 0; m_Energie = 1000; m_fGeschwindigkeit = 0.0f; cout << "Die Eingabe liegt ausserhalb des Spielfeldes. Die Standardparameter wurden verwendet" << endl; } } CRaumschiff::~CRaumschiff() { cout << "Raumschiff wurde zerstört" << endl; } int main() { int x, y; cout <<"Daten fuer das Gegnerische Raumschiff: " << endl; cout << "\n X-Koordinate" << endl; cin >> x; cout << "\n Y-Koordinate" << endl; cin >> y; CRaumschiff *spieler = NULL; CRaumschiff *gegner = NULL; spieler = new CRaumschiff(); gegner = new CRaumschiff (x, y); delete spieler; spieler = NULL; delete gegner; gegner = NULL; system("Pause"); return 0; } |
Schreibe einen Kommentar