Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
falcon42
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 3
#1

Алгоритм обхода в игре "точки" - C++

07.02.2016, 20:28. Просмотров 343. Ответов 4
Метки нет (Все метки)

пишу игру "точки" на с++ в VS form, по клику заполняю два вектора с точками, vector<MyPoint> One; vector<MyPoint> Two; мне нужно найти все области длины одной клетки и проверить если там точка из другого вектора точек, не могу придумать алгоритм обхода, прощу помочь как можно скорее!!
https://ru.wikipedia.org/wiki/%D0%A2...B3%D1%80%D0%B0)
пробовал построение мин выпуклой оболочки, не подошел, думал как приделать волновой алгоритм, тоже не вышло
если есть идеи обхода или лучше код, буду очень признателен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2016, 20:28     Алгоритм обхода в игре "точки"
Посмотрите здесь:

Алгоритм ходов компьютера в карточной игре "Дурак" C++
C++ Структуры данных в игре "Миллионер"
C++ Интеллект бота в игре "Покер на костях"
C++ Дана "мишень" в виде закрашенной области. Создать алгоритм для определения попадания точки с координатами (х,у) в мишень
Реализовать игровое поле в игре "Тетрис" C++
C++ Загрузка информации из файла (система рекордов в игре "Змейка")
C++ Как реализовать взаимодействие классов в игре "Змейка"
Случайное распределение кораблей по полю в игре "морской бой" C++
Сделать статистику игроков в игре "Крестики-нолики" C++
C++ Как реализовать AI в игре "Морской бой"
C++ Найти угол одной точки "A" в соотношении к точке "B" в градусах
Имитировать нажатие клавиш (программа для "макросов" в игре) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
852 / 750 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
08.02.2016, 12:03     Алгоритм обхода в игре "точки" #2
Цитата Сообщение от falcon42 Посмотреть сообщение
клетки и проверить если там точка из другого вектора точек, не могу придумать алгоритм обхода,
https://ru.wikipedia.org Дерево_квадрантов
По моему в самый раз.
falcon42
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 3
08.02.2016, 13:22  [ТС]     Алгоритм обхода в игре "точки" #3
закодил через рекурсию, кому интересно могу скинуть)
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
09.02.2016, 09:10     Алгоритм обхода в игре "точки" #4
Цитата Сообщение от falcon42 Посмотреть сообщение
кому интересно могу скинуть
Давай.
falcon42
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 3
09.02.2016, 15:28  [ТС]     Алгоритм обхода в игре "точки" #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void volna1( int mestoX, int mestoY,int Player,int Wave, bool &VolnaKray)
{
   //Если волна дошла до края поля - выход из рекурсивного цикла
   if( VolnaKray ) return;
   //Вышло ли за край поля
   if( mestoX < 0 || mestoX > 400 || mestoY < 0 || mestoY > 400)
       {VolnaKray = true;
       return;}
   //Распространение волны в незанятые места
   if (matr[mestoX/h][mestoY/h].color != Player && matr[mestoX/h][mestoY/h].status == 0) 
       matr[mestoX/h][mestoY/h].status = Wave;
   else
       //Значит место занято волной или точкой соперника
       return;
   //Рекурсивный перебор всех направлений распространения волны
   //Влево
   volna1(mestoX - h, mestoY, Player, Wave + 1, VolnaKray);
   //Вверх
   volna1(mestoX, mestoY - h, Player, Wave + 1, VolnaKray);
   //Вправо
   volna1(mestoX + h, mestoY, Player, Wave + 1, VolnaKray);
   //Вниз
   volna1(mestoX, mestoY + h, Player, Wave + 1, VolnaKray);
}
Yandex
Объявления
09.02.2016, 15:28     Алгоритм обхода в игре "точки"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru