![]() |
|
Модераторы: Poseidon |
![]()
|
|
| hqpz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.12.2009 Репутация: нет Всего: нет |
Всем привет. Буду краток. У меня есть код игры морской бой на Delphi, но там кораблики всегда стоят в одном положении. Помогите пожалуйста сделать рандомную расстановку корабликов. Ничего не получается. =( Там в самом конце кода прописаны ячейки с корабликами. Помогите переделать на рандомную, как для меня так и для противника
Это сообщение отредактировал(а) hqpz - 12.12.2009, 23:34 |
|||
|
||||
| Sanaff |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 15.9.2009 Где: г. Северодвинск Репутация: -1 Всего: 1 |
Рандомная расстановка кораблей - дело непростое. они же разнонго размера и положение можно менять (ветик/гориз)
В принципе можно, алгоритм примерно такой: Ставим в ранд. место самый большой корабль Вокруг его клетки помечаем как занятые. Генерируем ранд. координаты. если это свободная клетка, ставим корабль, если нет, повтор генерации. Повторяем, пока не поставим все корабли. Если не поставились все, то самое простое -тупо всё начать заново, чтобы окатов не делать. Всё равно не на скорость этот кусок кода. А вот это меня поразило: // определим чему равен x. For i := 0 To 9 Do If (x >= 20 * i) And (x <= 20 + i * 20) Then Begin x := i + 1; Break; End; Вот так не проще If (x >= 0) And (x <= 200) Then x = (x\20)+1; или как там целочисленное деление --------------------
Программист - это локальный бог ©ICQ 373-628-456 |
|||
|
||||
| hqpz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.12.2009 Репутация: нет Всего: нет |
Да там проблема собственно в том, что кораблик постоянно вылезает за пределы поля- либо на следующую строчку или просто за пределы, ну или залезает на поле противника. Как только я не пробовал прописывать условия, ничего не получается, он их просто не замечает. Щас сижу в отчаянии =( не знаю что и делать. А срок курсовой следующая неделя ((((((
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |