Мне сказали сделать проект игры на корабле с полем 10x10. На данный момент мне нужно знать, как произвольно создавать позиции корабля в поле (это массив 10x10). Поля не могут быть друг на друге, и они не могут быть рядом друг с другом. они также могут быть горизонтальными или вертикальными.Заполните поле битвы игровым полем C
мне нужно поместить следующие корабли: 1 корабль из пяти полей 1 корабль из четырех полей 2 кораблей трех полей 3 кораблей двух 4 кораблей одного
я действительно не видел как я могу это сделать. это то, что у меня есть до сих пор:
void generateField(int field[][dim])
{
int i,j;
for (i=0; i<dim; i++)
{
for (j=0; j<dim; j++)
{
field[i][j] = 0;
}
}
}
Это делает поле всем нулем. Я хочу генерировать лодки, как я уже говорил
Можно разместить несколько первые кораблей таких, что другие нет места осталось? Тогда назначение было бы немного сложнее. В противном случае это сводится к размещению их по одному. Вам понадобится обычная процедура для тестирования на столкновение. («Учитывая лодку длины l, начинающуюся с x, y с ориентацией N, W, S или E, она перекрывает или оставляет границы или имеет соседа?») Затем вы повторяете свои лодки; выберите кандидат, начиная координаты и направления случайным образом снова и снова, пока ваша рутина не будет одобрена. –