13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
1

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

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

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

После починки функции появилась новая проблема - иногда при тестировании возникает ситуация, что из за неравномерного распределения места 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2014, 22:16
Ответы с готовыми решениями:

Алгоритм поиска кораблей в игре Морской Бой
Всем доброго времени суток. Я пишу модуль логики сервера в программе &quot;морской бой&quot;. По условиям в...

Метод проверки корректности размещения кораблей в игре "морской бой"
Добрый день. В игре &quot;морской бой&quot; необходимо проверить корректность размещения кораблей. Первым...

Морской бой. Размещение кораблей
import java.util.* fun main(args: Array&lt;String&gt;) { var scanner = Scanner(System.`in`) ...

Расстановка кораблей, морской бой
Добрый вечер,я пишу программу,которая случайным образом будет расставлять корабли в текстовом файле...

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

1
2297 / 1784 / 745
Регистрация: 27.07.2012
Сообщений: 5,283
15.08.2014, 22:21 2
Честно говоря, в коде копаться лень. (В пятницу вечером-то). Но что-то подсказывает, что начинать расставлять корабли лучше с самого большого.
1
15.08.2014, 22:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2014, 22:21
Помогаю со студенческими работами здесь

Морской бой, расстановка кораблей
Например можно ли сделать корабль из панели, что бы эту панель можно было таскать по всему игровому...

Расстановка кораблей морской бой
Всем привет такое задание есть матрица 10х10 в ней мы расставляем корабли(расставляет сама...

Расстановка кораблей: Морской бой
Нужна помощь в написании функции(ий) для расстановки кораблей по правилам морского боя в матрице...

Расстановка кораблей Морской бой
Помогите расставить корабли в игре морской бой. Уже 2ю ночь не сплю ошибки выдаёт. Задаю массив...

Расстановка кораблей морской бой
Расстановка моих кораблей имеет вид просто отрисовки по нажатию, без всяких проверок мол больше...


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

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

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