Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
#1

консольный морской бой - размещение кораблей - C++

29.11.2011, 19:25. Просмотров 811. Ответов 0
Метки нет (Все метки)

Доброго времени суток!
Взялся за консольный морской бой. Сейчас на стадии расстановки компьютером кораблей.
Одним из условий является то, что нельзя ставить два корабля впритык. То есть, вокруг него должны быть свободные клетки.
C++
1
2
3
4
5
while(b[cifra1][cifra_bukva1] != ' ' || b[cifra1 + 1][cifra_bukva1] != ' ' || b[cifra1 - 1][cifra_bukva1] != ' ' || b[cifra1][cifra_bukva1+1] != ' ' || b[cifra1 ][cifra_bukva1-1] != ' ' || b[cifra1+1][cifra_bukva1+1] != ' ' || b[cifra1-1][cifra_bukva1-1] != ' ' || b[cifra1-1][cifra_bukva1+1] != ' ' || b[cifra1+1][cifra_bukva1-1] != ' ')
        {
            cifra1 = 1 + rand() % 10;
            cifra_bukva1 = 1 + rand() % 8;
        }
Делаем проверку всех клеток вокруг корабля. Если где-нибудь в центре поля, то все ок. Но если мы поставим, например, в верхний левый угол, то происходит зацикливание.
Вероятно из-за того, что мы хотим проверить клетки левее и выше (а выше и левее нету - использовано двумерный массив и выходит, что верхний левый элемент [0][0] и если отнимим -1, то будем искать непонятно где)
Посоветуйте, пожалуйста, как бы избежать подобную ошибку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 19:25     консольный морской бой - размещение кораблей
Посмотрите здесь:

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

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

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

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

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

Морской бой: расставляется кораблей больше, чем положено - C++
Здравствуйте! Пишу игру "Морской бой" в консоли, и попалась одна неприятная ситуация. Есть функция заполнения поля случайными кораблями,...

Консольный морской бой - C++
Занялся написанием консольного морского боя на с++, вроде бы уже написал мат модель(хотя и простейшую), но возникли проблемы с оформлением ...

Консольный морской бой - C++
Доброй ночи, уважаемые форумчане! Собственно, нашел код на просторах интернета, вроде как рабочий, пытаюсь его завести. Не выходит, выдает...

Консольный морской бой - C++
Привет всем. Вот поле: int Matrix; Размещаем корабль на х = 5, y = 5: Matrix = 0; 0 значит на эту координату больше нельзя...

Консольный морской бой, реализация циклами - C++
Создал 2 поля, для 2-х игроков. Как разместить на нем корабли(пользователь вводит координаты размещения) начиная от 4-х палубного и...

Консольный морской бой. Stack overflow - C++
Вечер добрый! Очень надеюсь на помощь. Мучаюсь уже который день, уйму часов потратил, а результата нет. Пытаюсь написать консольный...

Написать консольный морской бой с использованием ООП - C++
Вечер добрый! Хочу написать консольный морской бой. Требования такие: 1. Поле должно быть размером 10х10 (полей должно быть два:...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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