Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Числа Фибоначчи - растолковать код https://www.cyberforum.ru/ cpp-beginners/ thread1243133.html
Я тут хочу попрактиковаться в С++, а именно на числах Фебиначи. Я нашел хороший код и хочу его модифицировать, но мне нужно чтоб ктото мне объяснил что за что отвечает. Помогите плз. ...
C++ Вычисление суммы
Нужно написать программу чтобы в итоге она выдавала сумму: 1/1+3/2+5/3+7/4 ..... 99/50. При этом нужно использовать for, while and do_while.
C++ Оптимизация робота https://www.cyberforum.ru/ cpp-beginners/ thread1243123.html
Написал вот эту задачу: Робот Имя входного файла: robot.in Имя выходного файла: robot.out Ограничение по времени: 2 секунды Ограничение по памяти: 64 мегабайта В исследовательской лаборатории...
C++ Кодировки (ошибки кодировки) в логировании https://www.cyberforum.ru/ cpp-beginners/ thread1243095.html
Здравствуйте. Работаю с WINAPI и оттуда нормально приходят наименования на русском. Вот решил логирование организовать и на этом повалился (приходят символы как при проблеме с кодировкой). Вопрос:...
Текст в панели задач Windows C++
Какие есть функции для вывода текста на панель задач?
C++ Ошибка передачи параметра в функцию #include "stdafx.h" #include "War.h" int _tmain(int argc, _TCHAR* argv) { War warv("Battle"); warv.addWarrior(Barracks::createWarrior("Archer",warv),100); warv.LetTheWarBegin(); }... https://www.cyberforum.ru/ cpp-beginners/ thread1243080.html
C++ Вычисление времени полета тела Написать программу для вычисления времени полета тела, брошенного под углом к горизонту. Начальная скорость тела равно V и направлена под углом alpha к горизонту. Для вычисления использовать... https://www.cyberforum.ru/ cpp-beginners/ thread1243078.html C++ Каков порядок изучения тем для более успешного освоения языка
Добрый день, программисты. Хочу посоветоваться у вас вот по какому вопросу, но сначала скажу следующее: Изучаю C++ пол года, изучал пол года C#, что собой представляет ООП знаю, основы C++ тоже...
C++ Как работать с библиотекой VMIME? Привет, может кто рассказать как работать с библиотекой VMIME ? как ее вообще установить ? https://www.cyberforum.ru/ cpp-beginners/ thread1243036.html C++ Ступор в возврате указателей и ссылок https://www.cyberforum.ru/ cpp-beginners/ thread1243025.html
Изучаю С++ базовый курс от Шилтда, все проходил на твердую четверку, и на предпоследней теме про системы ввода-вывода абсолютно запоролся про указатели и ссылки. И дело то не в том, что я не понимаю...
C++ Проверить, делиться ли нацело одно число на другое
Помогите пожалуйста!! Пользователь ввел два числа n и m. Проверить, делиться ли нацело одно число на другое.
C++ Морской бой: расставляется кораблей больше, чем положено https://www.cyberforum.ru/ cpp-beginners/ thread1243013.html
Здравствуйте! Пишу игру "Морской бой" в консоли, и попалась одна неприятная ситуация. Есть функция заполнения поля случайными кораблями, т.е. в рандомные места (не обращайте внимание на...
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
0

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

15.08.2014, 22:16. Показов 2458. Ответов 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-ое - неудачный).

Вернуться к обсуждению:
Случайное распределение кораблей по полю в игре "морской бой" C++
Миниатюры
Случайное распределение кораблей по полю в игре "морской бой"   Случайное распределение кораблей по полю в игре "морской бой"  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2014, 22:16
Готовые ответы и решения:

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

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

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

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

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2014, 22:16
Помогаю со студенческими работами здесь

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

Морской бой.Обработка массива. Расстановка кораблей
Пытаюсь написать морской бой. Свою карту я подгружаю из файла. Проблема в том, что у меня не...

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

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

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru