|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.01.2022, 20:29 | #21 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Покажите текущий код.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
28.01.2022, 21:23 | #22 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 169
|
if(s2==1)
{ Invalidate(FALSE); int p=rand()%l2; i2=stekE1[p]; j2=stekE2[p]; l2=0; k2=0; } Последний раз редактировалось Timurkh77; 28.01.2022 в 22:07. |
29.01.2022, 00:12 | #23 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Упустил из виду, что вы сразу меняете координаты bitmapEnemy (в каждом ифе), а нужно их менять уже после выбора, в какую из свободных клеток будет сделан шаг.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
29.01.2022, 20:23 | #24 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 169
|
Не понял где менять координаты bitmapEnemy , движение осуществляется если клетка свободна ,
а это проверяется только в if-е. |
29.01.2022, 20:46 | #25 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Из if'ов убрать изменение координат, а сюда добавить:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
29.01.2022, 22:45 | #26 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 169
|
Через стены не проходит.Добавил случайность в движение,но ходит все равно неправильно.Как сделать так , чтобы противник ходил нормально?
if(m[i2-1][j2]==' ') { if(rand()%4==1) { stekE1[l2++]=i2-1; stekE2[k2++]=j2; s2=1; } } else if(m[i2-1][j2]=='*') { if(rand()%4==1) { score+=5; stekE1[l2++]=i2-1; stekE2[k2++]=j2; s2=1; } } |
30.01.2022, 07:59 | #27 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Случайность уже и так была (когда выбирается одна из свободных клеток с помощью int p = rand() % l2;). А сейчас получается, что даже если клетка свободна, то есть шанс, что она не будет рассматриваться. Кстати, увеличение счета score тоже нужно делать уже после выбора клетки, куда делается шаг.
В чем это выражается?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
31.01.2022, 16:05 | #28 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 169
|
Ходит в одном месте.Как сделать так , чтобы ходил по всему полю?
|
31.01.2022, 17:36 | #29 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Можно попробовать так: выбрать случайную свободную клетку на карте, волновым алгоритмом построить до нее маршрут, идти по маршруту до достижения клетки, повторить сначала. Или, например: волновым алгоритмом оценить расстояние до всех звездочек, выбрать ближайшую, идти к ней, если её кто-то съел (игрок, текущий противник, другой противник), то вернуться к началу алгоритма.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
02.02.2022, 21:42 | #30 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 169
|
Написал так:
void TMyWin::EvTimet(UINT) { int s2; s2=0; static int k=1; static int l=1; if(m[i2+k][j2]==' ') { stekE1[l2++]=i2+k; stekE2[k2++]=j2; s2=1; k++; } else if(m[i2+k][j2]=='*') { stekE1[l2++]=i2+k; stekE2[k2++]=j2; s2=1; k++; } else if(m[i2+k][j2]=='.') { k=1; } if(m[i2-k][j2]==' ') { stekE1[l2++]=i2-k; stekE2[k2++]=j2; s2=1; k--; } else if(m[i2-k][j2]=='*') { stekE1[l2++]=i2-k; stekE2[k2++]=j2; s2=1; k--; } else if(m[i2-k][j2]=='.') { k=1; } if(m[i2][j2+l]==' ') { stekE1[l2++]=i2; stekE2[k2++]=j2+l; s2=1; l++; } else if(m[i2][j2+l]=='*') { stekE1[l2++]=i2; stekE2[k2++]=j2+l; s2=1; l++; } else if(m[i2][[j2+l]=='.') { l=1; } if(m[i2][j2-l]==' ') { stekE1[l2++]=i2; stekE2[k2++]=j2-l; s2=1; l--; } else if(m[i2][j2-l]=='*') { stekE1[l2++]=i2; stekE2[k2++]=j2-l s2=1; l--; } else if(m[i2][j2-l]=='.') { l=1; } Ходит нормально,но опять проходит сквозь стены.Почему то исчезает. Последний раз редактировалось Timurkh77; 02.02.2022 в 21:55. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с загрузкой звука в игре типа Pacman | Timurkh77 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 12 | 13.09.2018 05:23 |
Графическая ошибка в игре типа Pacman | Timurkh77 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 18.08.2018 22:08 |
Какие знания по php и mysql нужно иметь, что бы в игре сделать такой бой в онлайн текстовой игре | jonikster | Общие вопросы Web | 4 | 15.06.2016 18:10 |
Интеллект компьютера в игре покер на костях | Pepsy | Общие вопросы C/C++ | 1 | 06.04.2013 21:17 |
Зависание игры после отбивания шара (TShape) противником (Delphi) | alex 2000 | Помощь студентам | 0 | 06.02.2012 13:47 |