class Welt {
public:
void ausgeben() {
// Du kannst und solltest Schleifenvariablen direkt
// im Kopf der Schleife deklarieren, wenn möglich,
// aber nicht als Klassen-Member. Die Variable wird
// ja sonst nirgendwo mehr benutzt, ihr Wert ist nach
// der Schleife sinnlos und hat für das Objekt keine
// wirkliche Bedeutung.
for (int y = 0; y < this->_begY; y++) {
for (int x = 0 ; x < this->_begX; x++)
this->_felder[x][y] = ' ';
}
// Und genau hier ist das Problem. Du prüfst nicht,
// ob die Array-Indizes überhaupt zwischen 0 und 79
// bzw. zwischen 0 und 24 liegen - d.h. du überschreibst
// irgendwas, was für das Programm wichtig sien kann.
// Daher kommt der Absturz. Eine einfache If-Abfrage
// könnte das Problem lösen, oder du implementierst
// es so, dass Werte jenseits des zulässigen Bereichs
// wieder in ihn hineingewrappt werden - z.B. dass yPos
// statt -1 den Wert 23 annimmt und die Figur dann am
// unteren Rand der Konsole startet.
this->_felder[this->_xPos][this->_yPos] = 'o'; //Zeichen für Spieler
// Hier wieder dasselbe mit den Schleifen.
for (int y = 0; y < this->_begY; y++) {
for (int x = 0; x < this->_begX; x++)
cout << this->_felder[x][y];
cout << endl;
}
}
void setXPos(int xNeu) {
this->_xPos = xNeu;
}
void setYPos(int yNeu) {
this->_yPos = yNeu;
}
private:
const int _begX = 79; // Dies ist der Bereich in dem
const int _begY = 24; // gezeichnet wird.
char _felder[79][24];
int _xPos = 0;
int _yPos = 0;
};