![]() |
![]() |
Vinchkovsky |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Реальное имя: Andriy Репутация: ![]() ![]() ![]() |
Не хотел новую тему открывать, поэтому пишу тут
![]() Самостоятельно пишу, снова-таки, от нечего делать, Морской бой с псевдографикой, возникли такие вопросы: 1) Какое количество кораблей должно быть на поле? Википедия пишет, что один четырехклеточный, два трехклеточный.....четыре одноклеточных, хотя на рисунке 1-5К,2-4К,...,5-1К (пусть х-уК обозначает х у-клеточных корабликов). Сам склоняюсь к второму варианту, как же на самом деле? 2) Если первый вариант верный, то все без проблем. Если нет, то проблема есть ![]() Создал процедуру, которая расставляет на поле кораблики, придавая элементу массива значение 1, если клетка занята, и 0, если нет. Корабли 1-5К, 2-4К, 3-3К,4-2К расставляются без проблем и моментально. Но проблема - после этого часто не хватает места на 1-местных кораблей. Например, ситуация такая: ![]() Красным помечена возможная позиция для 1К кораблика, и, как видно, она только одна. Как сделать, чтобы оставалось место для маленьких корабликов? Алгоритм установки кораблика у меня таков: for j:=1 to 2 do {Ставим 2 кораблика по 4 клетки каждый} Middle-переменная, диапазон значений которой-[размер кораблика-1,10-размер кораблика+1], то есть если хотя бы одна точка кораблика имеет координату, равную Middle, то кораблик не вылезает за пределы таблицы 10х10. Переменная а - отклонение от Middle влево, b- вправо. Главный вопрос выделил, чтобы он не затерялся в сообщении. С Википедия-вариантом или без маленьких корабликов программа работает "на ура". Спасибо за советы. |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 7:29 |