Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Допуск к ПК с помощью своей программы http://www.cyberforum.ru/cpp-beginners/thread394956.html
Здравствуйте. Я ученик 11ого класса/ Хочу поступить в бауманку по олимпиаде "Шаг в будущее". В школе прохожу только Visual Basic. Зафиксировал тему проекта как "Защита ПО от...
C++ Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса "Книга" Помогите пожалуйста с задачей: Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса "Книга" и каждый вызов конструктора и деструктора... http://www.cyberforum.ru/cpp-beginners/thread394954.html
Вычисление корня числа с помощью итерационной формулы C++
Всем привет:) помогите сделать задачку З.Ы исходник Должен имень Функцыю зарание, спасибо
Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов C++
Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов.Помогите плиз с решением задачи
C++ Найти среднее арифметическое цифр каждого числа последовательности http://www.cyberforum.ru/cpp-beginners/thread394926.html
Вводится последовательность из N целых чисел. Найти среднее арифметическое цифр каждого числа последовательности (функцией оформить определение среднего арифметического цифр числа).
C++ Подскажите, как написать проги для двух задач 1.В одномерном массиве, состоящем из n вещественных элементов, вычислить: • количество элементов меньших среднего арифметического; • упорядочить по возрастанию элементы, лежащие между минимальным и... подробнее

Показать сообщение отдельно
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 334

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

29.11.2011, 19:25. Просмотров 823. Ответов 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, то будем искать непонятно где)
Посоветуйте, пожалуйста, как бы избежать подобную ошибку?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru