Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Случайное распределение кораблей по полю в игре "морской бой" - C++

15.08.2014, 22:16. Просмотров 1052. Ответов 1
Метки нет (Все метки)

Привет всем кто читал мой предыдущий пост про векторы в морском боем, в той же фунции появилась новая проблема

После починки функции появилась новая проблема - иногда при тестировании возникает ситуация, что из за неравномерного распределения места 4-палубный корабль не помещается, и программа погружается в бесконечный цикл поиска места. Я попытался решить эту проблему так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void PlayerTable::fillRandom()
{
    reset();
    int all_types = 4;
    int count_ships = 4;
    int test = 0;
 
    for (int i = 1; i <= all_types; i++, --count_ships) {
        int j = 0;
        while (j < count_ships) {
            test++;
            Ship temp(i);
            if (addShip(temp)) { /*вывести добавл.корабли*/std::cout << temp.begin() << " " << temp.end() << "\n"; ++j; }
            if (test > 100) { break; fillRandom(); }  // если слишком много попыток поиска места - обнулить всю карту
            // if there is no free place for the figure -> make recursion
        }
    }
}
В 2 из 3 случаев все работает нормально, но в еще одном случае карта превращается в мешанину, и вместо 10 кораблей выводится 9 (скрины ниже).
Подскажите как решить эту проблему, моя логика здесь кончается.
Спасибо.

(1-ое фото - удачный случай, 2-ое - неудачный).
0
Миниатюры
Случайное распределение кораблей по полю в игре "морской бой"   Случайное распределение кораблей по полю в игре "морской бой"  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2014, 22:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Случайное распределение кораблей по полю в игре "морской бой" (C++):

Игра "Морской бой" Рассстановка кораблей
Пишу игру &quot;Морской бой&quot;. Нужно пока что только расставить корабли. На данный...

Как реализовать AI в игре "Морской бой"
Подскажите пожалуйста как лучше реализовать умную игру компьютера

Расстановка кораблей (морской бой)
Доброго времени суток, при расстановке 2х палубных кораблей возникает...

Консольный морской бой. Расстановка кораблей
Добрый вечер, уважаемые форумчане. Хочу написать консольный морской бой. Начал...

Морской бой - программа зацикливается на расстановке кораблей
Нужно написать курсовую(игру). Решила написать морской бой(пока что консольно)....

Морской бой. Ф-ция автоматической рассатновки кораблей.
Добрый день, ув. форумчане! Есть задание написать консольный морской бой. Есть...

1
John Prick
831 / 764 / 256
Регистрация: 27.07.2012
Сообщений: 2,176
Завершенные тесты: 3
15.08.2014, 22:21 #2
Честно говоря, в коде копаться лень. (В пятницу вечером-то). Но что-то подсказывает, что начинать расставлять корабли лучше с самого большого.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2014, 22:21
Привет! Вот еще темы с решениями:

Проверить правильность расстановки кораблей. Морской бой
Есть матрица NxM, где расставлены корабли. Корабли не стоят на краю матрицы,...

Есть у кого-нибудь исходник игры "Морской Бой"?
Ребят, может у кого завалялся исходник &quot;Морского Боя&quot;?

"Морской Бой": найти причины возникновения ошибок в коде
Доброго добра Всем тем, кто сейчас зашёл на эту страницу. Помогите понять,...

Найти и исправить ошибки (игра "Морской бой")
Ребят. На с++ пишу недавно. Решил сделать простенькую игру: &quot;Морской бой&quot;. Игра...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru