|
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
|
|
Реализация игры морской бой28.05.2014, 01:54. Показов 14075. Ответов 52
Метки нет (Все метки)
подскажите плз алгоритм написания морского боя и основные аспекты ...
мои мысли : поле Кликните здесь для просмотра всего текста
Как сделать поле ? что оно из себя будет представлять ? просто расположенные картинки на поле с определенными координатами ? или может быть вставить грид, а по ячейкам распихивать картинки ? не понятно ... корабли Кликните здесь для просмотра всего текста
Как сделать корабли ? что из себя представляют корабли различного размера ? если четырехпалубник, это 4 картинки однопалубных или одна большая картинка ? если одна большая картинка, как на ней фиксировать выстрелы ? если эту большую картинку распихать по гриду (можно ли вообще так, поместить 1 картинку в 4 ячейки ?), то какой событие будет срабатывать, клик на картинку или на ячейку грида ? немного важного для меня оффтопа Кликните здесь для просмотра всего текста
После того как построим поле с кораблями ( не важно каким способом ), стоит ли создать массив, в котором будут хранится -1, 0 и 1(не доступен, свободен, занят) ? Когда создаешь вариант игры с игроком и компьютером, как отследить какой вариант принят и как организовать код, чтобы не дублировать процедуры ? Если для этого использовать флаг, то каким его лучше сделать ? Если флаг разместить в классе и тоскать его по процедурам, не нарушает ли это принципов ООП ? Как из кода не получить костыль ? Не по теме: Как спойлерам дать заголовок ?
0
|
|
| 28.05.2014, 01:54 | |
|
Ответы с готовыми решениями:
52
Простейшая реализация игры "Морской бой"
Для игры компьютера в морской бой реализовать стратегию в виде дерева |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 02.06.2014, 13:23 | |||
|
Вторая строчка отсекает ту часть прямоугольника, которая выходит за пределы поля. Надо только отослать "правильные" координаты, то есть первой палубы, как при размещении.
1
|
|||
|
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
|
|
| 02.06.2014, 13:33 [ТС] | |
|
kolorotur, как узнать, что его пора топить ? как узнать какого он размера ?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 02.06.2014, 13:43 | |||
|
Можно хранить отдельную структуру с информацией по кораблям, но это бе. Подсчет количества палуб и сколько из них подбито можно совместить в одном методе.
1
|
|||
|
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
|
|
| 02.06.2014, 13:53 [ТС] | |
|
kolorotur, а как быть, когда убиваешь корабль, попав не в край, а в середину ? как считать ?
0
|
|
|
C#,XNA Game Studio
36 / 36 / 8
Регистрация: 26.04.2014
Сообщений: 195
|
|
| 02.06.2014, 13:53 | |
|
мне кажется что лучше усложнять структуру чем удлинять алгоритмы,в итоге мы несколько раз пересчитываем одни и те же значения, было бы неплохо взрывы в отдельном потоке анимировать ато на время взрыва наверняка подвисает
1
|
|
|
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
|
|
| 02.06.2014, 13:58 [ТС] | |
|
WhiteMaster, я еще не умею работать ни с потоками, ни с анимациями, я хотел, чтобы просто закрашивало соседние клетки во время взрыва
0
|
|
|
C#,XNA Game Studio
36 / 36 / 8
Регистрация: 26.04.2014
Сообщений: 195
|
|
| 02.06.2014, 14:02 | |
|
Fene4ka_, тогда самое простое как сказал kolorotur, нужно делать обход от клеток вокруг, и , зная их Rectangle(Location,Size), cделать Graphics.FillRectangle(new SolidBrush(Color.ВашЦвет),ВашРектангл);
1
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 02.06.2014, 14:03 | ||||
|
В данный момент проще работать с одним массивом.
1
|
||||
|
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
|
|
| 02.06.2014, 19:03 [ТС] | |
|
kolorotur, я просто не понимаю, как сделать обход, когда от текущей клетки есть 1 вниз и 2 вверх от текущей клетки ...
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 03.06.2014, 12:19 | ||
|
Четыре цикла: обход влево от текущей точки до тех пор, пока не уткнетесь в границу поля или в клетку, не являющуюся кораблем. Потом то же самое вправо, вниз и вверх. На каждой успешной проверке увеличивайте счет палуб и если клетка помечена как подбитая, то в добавок увеличивайте количество попаданий. В общем, делайте в точности то же самое, что делал бы компьютерный противник, сделав попадание и имея неограниченное количество выстрелов.
1
|
||
|
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
|
|
| 03.06.2014, 15:50 [ТС] | |
|
обновленная версия со взрывами, спс за помощь
0
|
|
|
0 / 0 / 0
Регистрация: 17.05.2015
Сообщений: 1
|
||
| 24.11.2015, 00:12 | ||
|
Добавлено через 1 минуту Fene4ka_, что значит в коде //убираем временные кораблики с поля? что за временные корабли?
0
|
||
|
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
|
|
| 24.11.2015, 03:11 [ТС] | |
|
0
|
|
| 24.11.2015, 03:11 | |
|
Аналог игры "Морской бой" Разработка класса "Корабль" для игры "Морской бой" Морской бой Морской бой
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|