Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (3): « 1 [2] 3 »   

> Описание: Помогите с багами скрипта
Andrew
Отправлено: 15 Августа, 2013 - 01:39:59
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




 Kibor пишет:
но это вообще то не правильно.

Работает-Хорошо, не работает-переделываю Радость
 
 Top
Kibor
Отправлено: 15 Августа, 2013 - 01:55:26
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Ищется любое изменение при нулях... без определения размерности. Ну пусть работает...
 
 Top
Andrew
Отправлено: 15 Августа, 2013 - 03:18:04
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




Простите, ошибся Радость
(Добавление)
Нет. Не работает.
Можно ли другим способом указать на количество всех очагов экрана, этот выдает ошибку идентификации указателей.
CODE:
int col, xe, ye;
getdisplay(col, xe, ye);
int ox=xe/50;
int oy=ye/33;
int pa=ox*oy; // Количество очагов динамики
int x[pa];
int y[pa];
int de=pa/3; // 1/3 очагов динамики

//=======================================

activate(w);
a:
finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 0, 0, xe, ye, w);
savescreen("C:\savescreen\screen\screen"+format(n)+".bmp", 0, 0, 400, 300, w);
sleep(500);
key(DOWN);
sleep(500);
din=finddynamic(pa, #x[0], #y[0], 0, 0, 0, 0, 0, 0, xe, ye, w);
if (din>de)
{n++;goto a;}

(Отредактировано автором: 15 Августа, 2013 - 03:19:04)

 
 Top
Kibor
Отправлено: 15 Августа, 2013 - 07:03:11
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Andrew пишет:
выдает ошибку идентификации указателей

Тут вообще не объявлен указатель win w.





 Andrew пишет:
int x[pa];
int y[pa];


Динамически память в Кибор не выделяется. Это не правильная запись.
Когда выделяется память надо указывать только числа.
Надо рассчитать сколько максимум может понадобится памяти и ее выделять столько.

Ошибка синтаксиса.



 Andrew пишет:
int ox=xe/50;
int oy=ye/33;


При делениях чисел лучше использовать double. Использование int может привести к большим погрешностям из за отбросов остатков в каждом выражение.

Все же я рекомендовал бы во втором вызове fiddynamic использовать не нули, а хоть бы такие параметры: 1, 1, 3, 3
 
 Top
Andrew
Отправлено: 15 Августа, 2013 - 07:12:01
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




 Kibor пишет:
Все же я рекомендовал бы во втором вызове fiddynamic использовать не нули, а хоть бы такие параметры: 1, 1, 3, 3

Хорошо, исправил.
 Kibor пишет:
Ошибка синтаксиса.

Нельзя было бы указать дробное количест вопамяти для функции финддинамик, я потому и стпрашивал Вас об округлении десятичных. Придется выделят максимальное значение памяти. Не знаю как я посчитал но для монитора 1920 X 1080 точек получил память
CODE:

int x[2145];
int y[2145];

Правильно ведь? А?!
 
 Top
Kibor
Отправлено: 15 Августа, 2013 - 07:24:01
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




1920 X 1080 = 2073600
Всего 2073600 пикселей. Каждый имеет пару xy
int x[2073600];
int y[2073600];

Объявление одного массива int на 2073600 элементов увеличит использование памяти программой на 8 метров. Не критично.
(Добавление)
Кстати, использование не нулей даст тот же эффект при меньшем количестве очагов.
 
 Top
Andrew
Отправлено: 15 Августа, 2013 - 07:50:28
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




 Kibor пишет:
1920 X 1080 = 2073600
Всего 2073600 пикселей. Каждый имеет пару xy
int x[2073600];
int y[2073600];

Думал в массив нужно указывать количество очагов, 50х33
 
 Top
Kibor
Отправлено: 15 Августа, 2013 - 07:54:56
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Andrew пишет:
50х33
Откуда взялись эти параметры?
 
 Top
Andrew
Отправлено: 15 Августа, 2013 - 07:58:53
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




Kibor , ВЫ очень хорошо описали эту функцию мне, и по приложенному изображению я взял эти данные.
Тут.
 
 Top
Kibor
Отправлено: 15 Августа, 2013 - 08:09:46
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Ну так там указан объем 50 и 33. При чем тут это?
Это как будто поделить площадь экрана на прямоугольники 50 на 33. Даже если так то получится количество объемов по X 35 и 33 по Y. Всего 1155
В том случае можно выделить и
int x[1155];
int y[1155];

В нашем случае если нули то надо выделять на каждый пиксель, если 1, 1, 3, 3 то объемы 3 на 3. Можно выделять
(1920/3)*(1080/3) = 230400
int x[230400];
int y[230400];

Но лучше выделить немного больше...
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 4 (гостей: 4, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by