Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 2
1

Дана матрица N*N. Как реализовать перемещение по матрице без участия пользователя?

21.05.2015, 14:29. Показов 2025. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан двумерный массив 20*20 типа int, инициализированный(пустое место). На нем случайным образом расположено N элементов типа int, инициализированных(враги), и слева внизу матрицы расположен элемент, инициализированный (игрок). В ходе программы, игрок будет перемещаться по сетке, а элементы (враги) должны перемещаться в сторону игрока автоматически.
Как реализовать поиск ближайших к игроку 15 -ти "врагов" , и их перемещение в его сторону? Спасибо!
Миниатюры
Дана матрица N*N. Как реализовать перемещение по матрице без участия пользователя?  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2015, 14:29
Ответы с готовыми решениями:

Работа с TChart. Перемещение (скроллинг) графика без участия колёсика мыши, можно ли реализовать?
Хочу сделать более-менее удобную работу с графиком TChart. Для этого требуется обеспечить зум...

Как можно закачать локальные файлы с помошью php+JS на webserver без доступа по FTP и без участия пользователя ?
Как можно закачать локальные файлы с помошью php+JS на webserver без доступа по FTP и без участия...

Как организовать взаимодействие с интерфейсом без участия пользователя?
Здравствуйте! Начинающий джавист просит помощи! Пишу шашки под андроид. Столкнулся с проблемой при...

Как запустить в скрытом режиме установщик какой-либо программы без участия пользователя?
Как при помощи BASH кода запустить в скрытом режиме установщик какой либо программы без участия...

2
21 / 21 / 19
Регистрация: 18.03.2014
Сообщений: 148
21.05.2015, 16:36 2
Лучший ответ Сообщение было отмечено Eugene_Zhenya как решение

Решение

поиск можно примерно таким образом (см.аттач): поочередно проверяем первый "круг" (это конечно квадрат, но через круг легче объяснить), затем "радиус" увеличиваем на единицу. Таким образом проверяем уже второй круг-квадрат вокруг игрока. И т.к. пока не насчитаем 15 врагов. Если мы обнаружили врага, сохраняем куда-то его позицию в массиве. (Если игрок на краю игрового поля, то это уже частный случай, но принцип можно оставить тот же.)

Движение, как вариант можно осуществить следующим образом: описать функции движения (MoveLeft, MoveRight, MoveUp, MoveDown) примерно такого содержания:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void MoveLeft (unknown_type &Who_did_move) //я не знаю, как вы храните того, кто ходит
{
//пусть массив доски называется board, а индекс игрока или врага 
//задается i и j в классе или структуре, тогда:
int i=Who_did_move.i;
int j=Who_did_move.j;
 
board[i][j] = 0; //текущее положение записали как 0
board[i-1][j]=1; //позицию слева записали как 1 (допустим единица значит, что там кто-то есть)
Who_did_move.i-=1; //уменьшили индекс игрока на 1
 
}
Подобным образом можно прописать для всех направлений. Чтобы особо не заморачиваться можно выбирать направление генератором случайных чисел, но если нужно именно, чтобы враги в сторону игрока топали, то можно определять по индексам, например:

C++
1
2
3
4
5
int i=enemy.i;
int j=enemy.j;
 
if (j<player.j) MoveRight(enemy); //если враг находится левее игрока, то ход вправо
if (i<player.i) MoveDown(enemy); //если враг находится выше, то ход вниз
P.S. Код для примерного объяснения принципа. Конечно тут не все учтено. Нужно будет это все подробно продумать, но надеюсь примерно основной принцип реализации, родившийся в моей голове, я объяснил
Миниатюры
Дана матрица N*N. Как реализовать перемещение по матрице без участия пользователя?  
0
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 2
21.05.2015, 19:47  [ТС] 3
bogdan_017, спасибо за ответ! Обязательно рассмотрю Вашу теорию!Теоретически я понимаю, что нужно сохранять координаты куда-то, но правильно реализовать это никак не получалось. В коде я не использую классы, так как не знаком с этим пока, а структуры как-то в голову не приходили
0
21.05.2015, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2015, 19:47
Помогаю со студенческими работами здесь

Рисование без участия пользователя
Изучая рисование в приложении вида WindowsForms а именно в picturebox я обнаружил что те или иные...

Ввод пароля без участия пользователя
Добрый день! Пытаюсь использовать команду: runas /user:user cmd&lt;C:\password.txt Возникает ошибка...

выполнение php без участия пользователя
Как сделать, чтобы на сервере выполнялся скрипт например каждые сутки?

Установка драйверов без участия пользователя
Есть программа. Определяет версию и разрядность Windows. На экране выводится форма где как раз...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru