Наталья Пахомова
Наталья Пахомова

Генерация случайного расположения кораблей для игры морской бой на C++



масив 10х10 у кораблей рядом клетки должны быть свободны.

Так, а где проверка на наличие рядом стоящих кораблей?

1)Надо написать другую функцию (рандом)
2) В ней должны быть исключения на счет рядом стоящих кораблей
3)Начинать случайную постановку корблей надо с 4х палубника.
4)Идейка была к примеру спросить у пользователя там введите любое число от 1 до 1000 и он там рандомно поставит эти кораблики
5) 1 ПОЛЕ 10х10
6)Осуществлять проверку на наличие корабликов рядом с другими

МФ
Максим Фирсов

#include
#include
using namespace std;
int main()
{
int j=-1,k,v,l,x[2],y;
char p[12][12],*t;
srand(time(0));
for(t=&p[0][0];++j-144;*t++='.');
for(l=4;l>0;l--)
for(k=5;k-l;k--)
{
v=1&rand();
do for(x[v]=1+rand() % 10,x[1-v]=1+rand() % 7,y=j=0;j-l;y|=p[x[0]][x[1]]!='.',x[1-v]++,j++); while(y);
x[1-v]-=l+1,p[x[0]][x[1]]='/',x[v]--,p[x[0]][x[1]]='/',x[v]+=2,p[x[0]][x[1]]='/',x[v]--,x[1-v]++;
for(j=-1;++j-l;p[x[0]][x[1]]='X',x[v]--,p[x[0]][x[1]]='/',x[v]+=2,p[x[0]][x[1]]='/',x[v]--,x[1-v]++);
p[x[0]][x[1]]='/',x[v]--,p[x[0]][x[1]]='/',x[v]+=2,p[x[0]][x[1]]='/';
}
for(j=1;j-11;j++,cout << endl) for(k=1;k-11;cout << char(p[j][k++] & 0xFE));
return 0;
}

АО
Алёна О

Поле игры это двухмерный массив типа int. 1 значит есть корабль, 0 значит корабля нет. srand включает генератор, rand генерирует число. Например, rand()0 Достаточно получить одну случайную точку для одного корабля.

Похожие вопросы
Генерация случайного код на PHP
кто знает учебники по генерации случайных чисел в turbo pascal
Помогите с программой генерации пароля.
И генерации случайных чисел в диапазоне от 1 до 1000 в 1000 в файл, в котором хранятся программы и введите эти цифры. но
PascalABC. Случайная генерация 3D пространства из кубов.
Как в c# выбрать случайное число из матрицы (строки) чисел?
Генерация звука в с++
О принципах генерации.
Генерация псевдослучаных неповторяющихся чисел в с++
Как делать игры на C++?