Я пытался написать игру в Xcode, где в терминале нарисована игровая доска с использованием многомерного массива типа char. Предполагается, что игра похожа на подземелье, где есть двери, на которые вы можете наступить, и когда вы делаете новую комнату в создании. Но иногда я получаю это действительно раздражающее «(11db)» «ошибка», когда одна из моих строк выделяется, говоря: < /p>
». Поток 1: exc_bad_access (code = exc_i386_gpflt) (11db) Ошибка в Xcode, и ранее я смог ее исправить, но я не могу казаться на это время. Что означает эта ошибка? Что я нахожу самой раздражающей частью, что это не происходит каждый раз. Иногда это происходит, как только я запускаю программу, когда комната будет создана, в других случаях это происходит после того, как вы пройдете через дверь, и я даже смог уйти без нее. Вот код, где это происходит: < /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>
Эта ошибка происходит в последней строке приведенного выше кода C ++. Что именно неправильно и почему?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>
Настройки [] - это массив настройки, который у меня есть, который считывает значения из текстового файла с настройками пользователя для случайных значений MAX и MIN. 0 = максимальная высота 1 = мин высота 2 = максимальная ширина 3 = ширина мин 4 = максимальный враг 5 = мин враг < /p>
Также я использую srand (время (0)) < /code> в верхней части моей основной функции.>
Подробнее здесь: https://stackoverflow.com/questions/328 ... i386-gpflt
Xcode 11db ошибка: Think 1: Exc_bad_access (code = exc_i386_gpflt) ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1749398770
Anonymous
Я пытался написать игру в Xcode, где в терминале нарисована игровая доска с использованием многомерного массива типа char. Предполагается, что игра похожа на подземелье, где есть двери, на которые вы можете наступить, и когда вы делаете новую комнату в создании. Но иногда я получаю это действительно раздражающее «(11db)» «ошибка», когда одна из моих строк выделяется, говоря: < /p>
». Поток 1: exc_bad_access (code = exc_i386_gpflt) (11db) Ошибка в Xcode, и ранее я смог ее исправить, но я не могу казаться на это время. Что означает эта ошибка? Что я нахожу самой раздражающей частью, что это не происходит каждый раз. Иногда это происходит, как только я запускаю программу, когда комната будет создана, в других случаях это происходит после того, как вы пройдете через дверь, и я даже смог уйти без нее. Вот код, где это происходит: < /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>
Эта ошибка происходит в последней строке приведенного выше кода C ++. Что именно неправильно и почему?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>
Настройки [] - это массив настройки, который у меня есть, который считывает значения из текстового файла с настройками пользователя для случайных значений MAX и MIN. 0 = максимальная высота 1 = мин высота 2 = максимальная ширина 3 = ширина мин 4 = максимальный враг 5 = мин враг < /p>
Также я использую srand (время (0)) < /code> в верхней части моей основной функции.>
Подробнее здесь: [url]https://stackoverflow.com/questions/32804751/xcode-11db-error-thing-thread-1-exc-bad-access-code-exc-i386-gpflt[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия