![]() |
![]() ![]() |
![]() |
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- вправо. Главный вопрос выделил, чтобы он не затерялся в сообщении. С Википедия-вариантом или без маленьких корабликов программа работает "на ура". Спасибо за советы. |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Не хотел новую тему открывать, - твои "нежелания", однако, противоречат традициям Форума. Я исправил.Верен, конечно, вариант 1х4+2х3+3х2+4х1. Если добавить следовать пятиклеточному варианту, то, разумеется, не хватит места на всех. Ты еще сделай десятиклеточный.. ![]() Поле игры 10х10 рассчитано именно на 4-клеточный вариант. Это ограничение существенное. Масштабировать, в принципе, можно - но, будь добр, подкорректируй размеры поля. И это может оказаться не очень хорошо.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Vinchkovsky |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Реальное имя: Andriy Репутация: ![]() ![]() ![]() |
Цитата - твои "нежелания", однако, противоречат традициям Форума. Я исправил. Приношу свои извинения, думал, что однотипные темы - не очень хорошо ![]() Цитата Верен, конечно, вариант 1х4+2х3+3х2+4х1. Спасибо, тогда все хорошо, в воспоминаниях остался вариант про 5-клеточный вариант, видимо, ошибся. На Википедии смутила картинка (http://upload.wikimedia.org/wikipedia/comm...iffeversenk.jpg), да и текст: Type of ship Size aircraft carrier 5 battleship 4 destroyer 3 submarine 3 patrol boat 2 Правда, только теперь досмотрелся, что там нету одноклеточного корабля. В общем, все работает идеально с двумя варинтами, а это главное; спасибо за помощь, извиняюсь за глупый вопрос ![]() Цитата Если добавить следовать пятиклеточному варианту, то, разумеется, не хватит места на всех. Хватает, но не всегда, это меня и запутало ![]() ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 12:58 |