by Guest » 07 Feb 2025, 05:03
Ich habe versucht, ein Spiel in Xcode zu schreiben, in dem ein Spielbrett mit einem mehrdimensionalen Array von Typ -Zeichen im Terminal gezogen wird. Das Spiel soll wie ein Dungeon sein, in dem Sie Türen treten können und wenn Sie ein neues Zimmer erzeugen. Aber manchmal bekomme ich das wirklich nervige "(11 dB)" Fehler, bei dem eine meiner Zeilen hervorgehoben wird. (code = exc_i386_gpflt) "< /p>
< /blockquote>
Es ist nicht das erste Mal, dass ich den (11 dB) Fehler in Xcode hatte und zuvor habe ich ich Ich war in der Lage, es zu reparieren, aber ich kann diesmal nicht scheinen. Was bedeutet dieser Fehler? Was ich den nervigsten Teil finde, das nicht jedes Mal passiert. Manchmal wird es geschehen, sobald ich das Programm beim Erstellen des Raums betreibe, manchmal passiert es, nachdem Sie eine Tür durchlaufen haben und ich sogar ohne sie gehen konnte. Hier ist der Code, in dem er passiert: < /p>
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 1);
//Check to see if door location is the same an an enemy or the player
for (int i = 0; i < enemies.size(); i++){
while ((door_x == enemies.at(i).getX() && door_y == enemies.at(i).getY()) || (door_x == player->getX() && door_y == player->getY())){
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 0);
}
}
room[door_y][door_x] = DOOR;//Place door on map
< /code>
Dieser Fehler findet in der letzten Zeile des obigen C ++ - Code statt. Was genau ist falsch und warum? pre class = "Lang-cpp PrettyPrint-Override">int randomNumber(int max, int min){
int randomNumber = rand() %(max - min) + min;
return randomNumber;
}
void create_new_room(){
//Get random room height and room width
height = randomNumber(settings[0], settings[1]);
width = randomNumber(settings[2], settings[3]);
room = new char*[height];
for (int iter = 0; iter != height; iter++) {
room[iter] = new char[width];
}
for (int i = 0; i < height; i++){
for (int j = 0; j < width; j++){
room[j] = EMPTY;
}
}
enemies.clear();//Delete every object from the vector
//Create the enemies
int numEnemies = randomNumber(settings[4], settings[5]);
for (int i = 0; i < numEnemies; i++){
int randomHeight = randomNumber(height, 0);
int randomWidth = randomNumber(width, 0);
Enemy *e;//Create pointer to class to allow vector class push back
e = new Enemy(randomWidth, randomHeight, HEALTH);
enemies.push_back(*e);
delete e;//Delete pointer e to free memory and avoid any memory leak.
room[enemies.at(i).getY()][enemies.at(i).getX()] = ENEMY;//Place enemy on board
}
//Create Player
int player_y = randomNumber(height, 0);
int player_x = randomNumber(width, 0);
for (int i = 0; i < enemies.size(); i++){
while (player_x == enemies.at(i).getX()){
player_y = randomNumber(height, 0);
player_x = randomNumber(width, 0);
}
}
player = new Player(player_x, player_y, ATTACK);
//Place player on board
room[player->getY()][player->getX()] = PLAYER;
//Create a door
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 1);
//Check to see if door location is the same an an enemy or the player
for (int i = 0; i < enemies.size(); i++){
while ((door_x == enemies.at(i).getX() && door_y == enemies.at(i).getY()) || (door_x == player->getX() && door_y == player->getY())){
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 1);
}
}
room[door_y][door_x] = DOOR;//Place door on map
}
< /code>
Einstellungen [] ist ein Array von Setting, das ich habe, das in Werten aus einer Textdatei mit Benutzereinstellungen für die maximalen und min -Zufallswerte liest. 0 = maximale Höhe 1 = min Höhe 2 = max. Breite 3 = min Breite 4 = Max -Feind 5 = Minenfeind < /p>
Auch ich benutze srand (Zeit (0)) < /Code> oben in meiner Hauptfunktion. < /p>
Mein Code ist etwas chaotisch, aber hier ist es.>
Ich habe versucht, ein Spiel in Xcode zu schreiben, in dem ein Spielbrett mit einem mehrdimensionalen Array von Typ -Zeichen im Terminal gezogen wird. Das Spiel soll wie ein Dungeon sein, in dem Sie Türen treten können und wenn Sie ein neues Zimmer erzeugen. Aber manchmal bekomme ich das wirklich nervige "(11 dB)" Fehler, bei dem eine meiner Zeilen hervorgehoben wird. (code = exc_i386_gpflt) "< /p>
< /blockquote>
Es ist nicht das erste Mal, dass ich den (11 dB) Fehler in Xcode hatte und zuvor habe ich ich Ich war in der Lage, es zu reparieren, aber ich kann diesmal nicht scheinen. Was bedeutet dieser Fehler? Was ich den nervigsten Teil finde, das nicht jedes Mal passiert. Manchmal wird es geschehen, sobald ich das Programm beim Erstellen des Raums betreibe, manchmal passiert es, nachdem Sie eine Tür durchlaufen haben und ich sogar ohne sie gehen konnte. Hier ist der Code, in dem er passiert: < /p>
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 1);
//Check to see if door location is the same an an enemy or the player
for (int i = 0; i < enemies.size(); i++){
while ((door_x == enemies.at(i).getX() && door_y == enemies.at(i).getY()) || (door_x == player->getX() && door_y == player->getY())){
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 0);
}
}
room[door_y][door_x] = DOOR;//Place door on map
< /code>
Dieser Fehler findet in der letzten Zeile des obigen C ++ - Code statt. Was genau ist falsch und warum? pre class = "Lang-cpp PrettyPrint-Override">int randomNumber(int max, int min){
int randomNumber = rand() %(max - min) + min;
return randomNumber;
}
void create_new_room(){
//Get random room height and room width
height = randomNumber(settings[0], settings[1]);
width = randomNumber(settings[2], settings[3]);
room = new char*[height];
for (int iter = 0; iter != height; iter++) {
room[iter] = new char[width];
}
for (int i = 0; i < height; i++){
for (int j = 0; j < width; j++){
room[i][j] = EMPTY;
}
}
enemies.clear();//Delete every object from the vector
//Create the enemies
int numEnemies = randomNumber(settings[4], settings[5]);
for (int i = 0; i < numEnemies; i++){
int randomHeight = randomNumber(height, 0);
int randomWidth = randomNumber(width, 0);
Enemy *e;//Create pointer to class to allow vector class push back
e = new Enemy(randomWidth, randomHeight, HEALTH);
enemies.push_back(*e);
delete e;//Delete pointer e to free memory and avoid any memory leak.
room[enemies.at(i).getY()][enemies.at(i).getX()] = ENEMY;//Place enemy on board
}
//Create Player
int player_y = randomNumber(height, 0);
int player_x = randomNumber(width, 0);
for (int i = 0; i < enemies.size(); i++){
while (player_x == enemies.at(i).getX()){
player_y = randomNumber(height, 0);
player_x = randomNumber(width, 0);
}
}
player = new Player(player_x, player_y, ATTACK);
//Place player on board
room[player->getY()][player->getX()] = PLAYER;
//Create a door
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 1);
//Check to see if door location is the same an an enemy or the player
for (int i = 0; i < enemies.size(); i++){
while ((door_x == enemies.at(i).getX() && door_y == enemies.at(i).getY()) || (door_x == player->getX() && door_y == player->getY())){
door_x = randomNumber(height - 1, 1);
door_y = randomNumber(width - 1, 1);
}
}
room[door_y][door_x] = DOOR;//Place door on map
}
< /code>
Einstellungen [] ist ein Array von Setting, das ich habe, das in Werten aus einer Textdatei mit Benutzereinstellungen für die maximalen und min -Zufallswerte liest. 0 = maximale Höhe 1 = min Höhe 2 = max. Breite 3 = min Breite 4 = Max -Feind 5 = Minenfeind < /p>
Auch ich benutze srand (Zeit (0)) < /Code> oben in meiner Hauptfunktion. < /p>
Mein Code ist etwas chaotisch, aber hier ist es.>