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