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

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

 Страниц (1): [1] 

> Описание: Бот для игр жанра "три в ряд"
username
Отправлено: 17 Апреля, 2014 - 13:48:44
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2014  
Репутация: 0




Есть поле разбитое на ячейки, в которых кристалы разных цветов. Нужно поменять местами два кристала, чтоб в одном из рядов получилось три и более, тогда они исчезают и сверху падают новые.
В нашем случае поле шесть на шесть, всего 36 ячеек. И пять видов кристалов.
Это приложение в одноклассниках "Небеса". И мини игрой в нём реализован процесс боя.
Вот картинка игрового поля.



Нужно научить бота анализировать экран и делать ход.
И сам я с этой задачей не справляюсь, помогите.
(Добавление)
Остановите меня, если я начну впадать в маразм.

Можно использовать findimage дабы определить какой кристал расположен в какой ячейке. Для этого нужно определить кардинаты начала и конца поиска для каждой ячейки.
Вот так, например.



Мы получаем семь пар координат, которыми можно обозначить любую ячейку.

CODE:

int x1, x2, x3, x4, x5, x6, x7;
int y1, y2, y3, y4, y5, y6, y7;
[color=green]//можно сразу указать конкретные цифры.[/color]

int a1,b1,c1,d1,e1,f1, a2,b2,c2,d2,e2,f2, a3,b3,c3,d3,e3,f3, a4,b4,c4,d4,e4,f4, a5,b5,c5,d5,e5,f5, a6,b6,c6,d6,e6,f6;
[color=green]//Это переменные для ячеек. Например левому верхниму углу ячейки а1 соответствуют координаты x1, y1, ячейки b1 - x1, y2, ячейки d3 - x3, y4. и так далее.[/color]


Ещё у нас есть пять картинок кристалов.

CODE:

int red[28][28]; int redX[512]; int redY[512]; int yell[29][29]; int yellX[512]; int yellY[512]; int green[30][29]; int greenX[512];
int greenY[512]; int skull[28][30]; int skullX[512]; int skullY[512]; int ank[27][26]; int ankX[512]; int ankY[512];

loadimage (#red[0][0], "C:\krst\red.bmp");
loadimage (#yell[0][0], "C:\krst\yell.bmp");
loadimage (#green[0][0], "C:\krst\green.bmp");
loadimage (#skull[0][0], "C:\krst\skull.bmp");
loadimage (#ank[0][0], "C:\krst\ank.bmp");

[color=green]//Загружаем их в память.[/color]

(Добавление)
Потом определяем в какой ячейке находится какой кристал.

CODE:

if (findimage(1, #red[0][0], 8388672, #redX[0], #redY[0], x1, y1, x2, y2, r,r,r,r,r,r, 90, 1, wind)==1){int a1=1; goto ob1;}
else{ if (findimage(1, #skull[0][0], 8388672, #skullX[0], #skullY[0], x1, y1, x2, y2, r,r,r,r,r,r, 90, 1, wind)==1){int a1=2; goto ob1;}
else{ if (findimage(1, #yell[0][0], 8388672, #yellX[0], #yellY[0], x1, y1, x2, y2, r,r,r,r,r,r, 90, 1, wind)==1){int a1=3; goto ob1;}
else{ if (findimage(1, #green[0][0], 8388672, #greenX[0], #greenY[0], x1, y1, x2, y2, r,r,r,r,r,r, 90, 1, wind)==1){int a1=4; goto ob1;}
else{ if (findimage(1, #ank[0][0], 8388672, #ankX[0], #ankY[0], x1, y1, x2, y2, r,r,r,r,r,r, 90, 1, wind)==1){int a1=5; goto ob1;}
else{ messagebox("А1 не определён"); goto end;}}}}}
//Программа определяет кристал в ячейке и зависимо от этого присваивает соответствующей переменной значение.


ob1:
//Тут такой же код для определения содержимого ячейки b1, и далее аналогично для остальных.

(Добавление)
Я уже не понимаю что творю.

Код уже выглядит чудовищно, но ещё не закончился. Огорчение
После назначения цифер идёт перебор вариантов хода.


CODE:
int px=28, py=56; //Поправка координат, чтоб клик попадал в квадратик.

if (a1==b1==d1){mouse(LEFT, x1+px, y3+py, wind); sleep(1000); mouse(LEFT, x1+px, y4+py, wind)}
//Если переменным a1,b1,d1 присвоили одинаковые цифры, значит надо щёлкнуть по координатам ячеек d1 и c1 чтоб поменять их местами.



Вариантов таких хоть и ограниченное количество, но их много.
И возможно ли реализовать расстановку приоритетов для кристалов? Например чтоб поиск вариариантов ходов с определёнными кристалами производился раньше остальных.
 
 Top
Kibor
Отправлено: 17 Апреля, 2014 - 17:54:36
Post Id



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


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




Надо использовать массивы и циклы.

Это вопрос по помощи или заказ?
 
 Top
username
Отправлено: 17 Апреля, 2014 - 18:43:39
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2014  
Репутация: 0




 Цитата:
Надо использовать массивы и циклы.

Не понимаю как использовать массивы в таких условиях.

 Цитата:
вопрос по помощи или заказ?

Мне помощь нужна.
 
 Top
Kibor
Отправлено: 26 Июля, 2015 - 09:06:39
Post Id



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


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




Реализация бота игры Три В Ряд
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Заказать скрипт »


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




Powered by