|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.12.2015, 19:26 | #1 |
Форумчанин
Регистрация: 01.03.2015
Сообщений: 118
|
Морской Бой С++
Здравствуйте,подскажите пожалуйста,есть поле 10х10 на нем корабли,как обычно,Как привязать корабль к координатам?в смысле вот есть трех палубный и в него попадают что бы показало что он ранен, трижды что он был уничтожен.
и еще подскажите пожалуйста я хочу использовать графику,и хочу сделать все поле в клеточку,как присвоить каждой клеточке свое расположение(координаты массива), или стоит рисовать их по отдельности? как взаимодействовать с полем противника при обстреле,в контейнерном классе хранить? Буду благодарен за любые идеи,подсказки,советы. |
27.12.2015, 20:00 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Я увы не знаю правильный ответ на твой вопрос, но я бы не делал анализатор уничтоженных кораблей. ИМХО проще описать матрицу, в которых некоторые ячейки будут просто содержать палубу. Попадание во все палубы корабля просто бы отмечал на карте без пояснения что это полное потопление.
I'm learning to live...
|
27.12.2015, 20:10 | #3 |
Форумчанин
Регистрация: 01.03.2015
Сообщений: 118
|
Спасибо,думаю так и сделаю.а может вы знаете,что бы реализовать выстрел по полям мне надо поле Компьютера и поле пользователя запихнуть в контейнерный класс и там уже выполнять действия ?
Последний раз редактировалось Sterben; 27.12.2015 в 20:13. |
27.12.2015, 21:29 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Да я бы с классами не заморачивался вообще.
Матрица. Пара функций (расстановка кораблей и функция выстрела) Ну и функция отображения на экране конечно. Самое сложное: функция расстановки кораблей. Тут придется больше всего кода написать.
I'm learning to live...
|
12.01.2016, 13:16 | #5 |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
Stilet, AI расстановки кораблей реализовать просто, если начинать расставлять корабли по уменьшающей (4-х палубные, 3-х, ...). После добавления каждого корабля на карту, заштриховывать поля вокруг него, и переходить к расстановке следующего, с условием, что есть место для его добавления, иначе, нужно откатить последний добавленный корабль, пока не появится место для добавления корабля, и переходить к расстановке, пока все корабли не будут расставлены...
|
12.01.2016, 14:23 | #6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Как вы думаете, чем автору темы легче всего отображать корабли на экране?
|
12.01.2016, 15:02 | #7 |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
8Observer8, не совсем понятен вопрос.
Если имеется ввиду, как отрисовывать сами корабли, то я бы выводил коричневые квадраты, вместо синих, для своих кораблей, красные для раненных и черные для убитых; синий квадрат - пустая клетка, синий с черный с точкой - выстрел мимо... Или речь не об этом? |
13.01.2016, 00:20 | #8 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Цитата:
Мне кажется, лучше не монотонные квадраты выводить, а нарисовать заранее в Paint'е. Последний раз редактировалось 8Observer8; 13.01.2016 в 00:22. |
|
13.01.2016, 06:16 | #9 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Я не понимаю, зачем путать игровую матрицу с её отрисовкой? Игровая матрица - 10х10 (типа int) заполнена нулями. Заполняется кораблями с цифрами:
1 - однопалубный; 2 - двухпалубный; 3 - трёхпалубный; 4 - четырёхпалубный 10 - подбита одна из палуб 20 - буль-буль. А как это всё отрисовать? Да хоть как. Хоть просто на Bitmap, а хоть и в 3D. Можно усложнить игру, например у каждого корабля есть зона поражения. Четырёхпалубный, стреляет на всё игровое поле. Трёхпалубный, в радиусе 8 клеток. Двухпалубный, в радиусе 6 клеток. Однопалубный, в радиусе 3 клеток. Выбираем с какого корабля стреляем и куда. Победу можно определять так. Если у противника ни один живой корабль не может своими выстрелами достать живой корабль игрока, то победа - игрока.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 13.01.2016 в 06:29. |
13.01.2016, 10:04 | #10 | ||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Цитата:
Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
c# морской бой | Илья2014 | Помощь студентам | 2 | 20.05.2014 11:02 |
Морской бой на С# | M@@Shk@ | Помощь студентам | 1 | 05.06.2012 20:35 |
Морской бой на С++ | Vacilica | Помощь студентам | 3 | 22.01.2011 23:15 |
морской бой | zxcc | Помощь студентам | 1 | 05.05.2010 16:51 |
Морской Бой | Fanga | C++ Builder | 3 | 30.03.2010 17:03 |