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

милионный цикл) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция и масивы http://www.cyberforum.ru/cpp-beginners/thread96494.html
Помогите пожалуйста создать програмку для такой задачи: "Написать функцию транспонирования квадратной матрицы (то есть повороту начальной матрицы на 90 градусов). С ее помощью определить или есть заданная матрица симметричной. (Матрица называется симметричной, если транспонирована матрица ровная начальной)" Заранее всем большое спасибо за помощь
C++ Сдвиг #include <iostream> #define N 3 #define M 3 using namespace std; int main() { int array1={1,2,3,4,5,6,7,8,9}; http://www.cyberforum.ru/cpp-beginners/thread96487.html
Создать класс employee C++
Создайте класс employee, который содержит имя (объект класса string) и но- мер (типа long) служащего. Включите в него метод getdata(), предназна- ченный для получения данных от пользователя и помещения их в объект, и метод putdata(), для вывода данных. Предполагаем, что имя может иметь внутренние пробелы. Напишите функцию main(), использующую этот класс. Вам нужно будет создать массив...
C++ Незнаю что такое
Я новичок в С++ только сегодня поставил. Устанавливал всьо на диск С и когда я у себя в унтвере сделал прогу то она компилировалась и было всьо нормально а вдома не компилируетса вибивает такую ошибку: Unit1.cpp(19): F1013 Error writing output file и всьо дальше не работает нмчего не компилируэе. Что делать срочно помогите??????(((((((((((((
C++ Классы http://www.cyberforum.ru/cpp-beginners/thread96422.html
Не знаю как у вас по русски (*) и с классами надо сделать программу, которая будет обсчитывать pi(R+r)L+piR^2+pir^2=S В данной задаче надо использовать классы и (*). Сам я с Литвы, плохой универ, так как ничего не объясняют и в программировании я тоже не "хакер". Помогите с чего начать и вообще что делать...?? neznaju kak u vas po russki (*) i s klassami nado sdelat programu kotoraja budet...
C++ однонаправленный список Ребятушки милые мои :) Помогите решить задачу !!! Даны натуральное число n и однонаправленный список, содержащий действительные числа x1,...,xn. Получить сумму значений элементов списка, принадлежащих отрезку , а также число таких элементов. В конец списка добавить звенья, содержащие получившиеся значения. Организо¬вать вывод начальной и конечной последовательности значений в спис¬ке. подробнее

Показать сообщение отдельно
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
17.02.2010, 15:54     милионный цикл)
создаю свою игру, она тайловая, тайлы размером 16 на 16, размер всей карты 1050x1050 тайлов
есть 1000 монстров и 1000 охотников, которые равномерно распределены по всей площади карты,и двигаются в случайных направлениях раз в полсекунды(несинхронизированно),
у каждого монстра и охотника есть свой радиус обзора и естественно координаты(в тайлах), нужно сделать так чтобы при приближении охотника к любому монстру на расстояние обзора он получал его UID, и наоборот - чтобы и те и те могли напасть первыми;

делаю так:

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
struct Hunter
{
DWORD UID;
USHORT x;
USHORT y;
DWORD targetUid;
USHORT vradius;
//...
}
 
struct Mob
{
DWORD UID;
USHORT x;
USHORT y;
DWORD targetUid;
USHORT vradius;
//...
}
 
Hunter hunter[1000];
Mob mob[1000];
 
void MainLoop()
{
 
//Оценка расстояния для охотников
 
for(DWORD a=0;a<1000;a++)
{
for(DWORD b=0;b<1000;b++)
{
 
//Range вычисляет расстояние между двумя точками
 
if(Range(hunter[a].x,hunter[a].y,mob[b].x,mob[b].y) <= hunter[a].vradius)
{
hunter[a].target=mob[b].UID;
}
 
}
}
 
//Оценка расстояния для монстров
 
for(DWORD a=0;a<1000;a++)
{
for(DWORD b=0;b<1000;b++)
{
 
if(Range(mob[a].x,mob[a].y,hunter[b].x,hunter[b].y) <= mob[a].vradius)
{
mob[a].target=hunter[b].UID;
}
 
}
}
 
}
выходит два цикла по миллиону итераций, в итоге игра сбивается со своей частоты синхронизации, которая составляет всего 20 раз в секунду.
подскажите пожалуйста, может быть есть способ попроще, без перечисления всех действующих лиц, или хотя бы как снизить нагрузку, или каким ни будь образом вынести этот фрагмент из главного цикла MainLoop?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru