Здравствуйте. С момента моего начала ознакомления с кликером прошло довольно много времени и уже не мало написал скриптов для себя. А вот сейчас застрял((
Пишу бота для техасского холдема.
Карты приходящие в руку (префлоп) отличаются от карт, которые на стол выходят(флоп, терн, ривер).
Решил вместо поиска бмп-шек для каждой карты использовать подсчет пикселей фона в участке где картинка карты. Таким образом я избавился от проблемы, с тем что карты бывают черные и красные.
Потому использую 2 разных набора "колод" (разное кол-во пикселей фона для одной и той же карты в руке и на столе)
//ПРЕФЛОП
GETSCREEN(756,418, 792,444)
$Preflop_1 = PXLCOUNT(756,418,773,444, 16777215) // карманная карта 1
$Preflop_2 = PXLCOUNT(775,418,792,444, 16777215) // карманная карта 2
// КОЛИЧЕСТВО ПИКСЕЛЕЙ 16777215 ДЛЯ КАРТ ПРЕФЛОПА
// 2 = 311
// 3 = 320
// 4 = 328
// 5 = 306
// 6 = 285
// 7 = 346
// 8 = 255
// 9 = 279
// 10 = 213
// J = 323
// Q = 248
// K = 261
// A = 291
SWITCH($Preflop_1)
// 2
CASE(311)
// 3
CASE(320)
// 4
CASE(328)
// 5
CASE(306)
// 6
CASE(285)
// 7
CASE(346)
// 8
CASE(255)
// 9
CASE(279)
// 10
CASE(213)
// J
CASE(323)
// Q
CASE(248)
// K
CASE(261)
// A
CASE(291)
DEFAULT
// случай по умолчанию
END_SWITCH
SWITCH($Preflop_2)
// 2
CASE(311)
// 3
CASE(320)
// 4
CASE(328)
// 5
CASE(306)
// 6
CASE(285)
// 7
CASE(346)
// 8
CASE(255)
// 9
CASE(279)
// 10
CASE(213)
// J
CASE(323)
// Q
CASE(248)
// K
CASE(261)
// A
CASE(291)
DEFAULT
// случай по умолчанию
END_SWITCH
// ФЛОП
WAITMS(50)
GETSCREEN(501,237,668,270)
$card_1 = PXLCOUNT(501,237,520,270, 16777215)
$card_2 = PXLCOUNT(575,237,594,270, 16777215)
$card_3 = PXLCOUNT(649,237,668,270, 16777215)
// ТЕРН
WAITMS(50)
GETSCREEN(723,237,742,270)
$card_4 = PXLCOUNT(723,237,742,270, 16777215)
//РИВЕР
WAITMS(50)
GETSCREEN(797,237,816,270)
$card_5 = PXLCOUNT(797,237,816,270, 16777215)
WAITMS(50)
LOGWRITE ("Карта_1 = ", $card_1, " Карта_2 = ", $card_2, " Карта_3 = ", $card_3, " Карта_4 = ", $card_4, " Карта_5 = ", $card_5)
WAITMS(50)
// ФЛОП_1
SWITCH($card_1)
// 2
CASE(425)
CASE(426)
CASE(427)
// 3
CASE(429)
CASE(430)
CASE(431)
// 4
CASE(479)
CASE(480)
CASE(481)
// 5
CASE(455)
CASE(456)
CASE(457)
// 6
CASE(412)
CASE(413)
CASE(414)
// 7
CASE(507)
CASE(508)
CASE(509)
// 8
CASE(346)
CASE(347)
CASE(348)
// 9
CASE(403)
CASE(404)
CASE(405)
// 10
CASE(369)
CASE(370)
CASE(371)
// J
CASE(494)
CASE(495)
CASE(496)
// Q
CASE(415)
CASE(416)
// K
CASE(385)
CASE(386)
CASE(387)
// A
CASE(417)
CASE(418)
CASE(419)
DEFAULT
END_SWITCH
// ФЛОП_2
SWITCH($card_2)
// 2
CASE(425)
CASE(426)
CASE(427)
// 3
CASE(429)
CASE(430)
CASE(431)
// 4
CASE(479)
CASE(480)
CASE(481)
// 5
CASE(455)
CASE(456)
CASE(457)
// 6
CASE(412)
CASE(413)
CASE(414)
// 7
CASE(507)
CASE(508)
CASE(509)
// 8
CASE(346)
CASE(347)
CASE(348)
// 9
CASE(403)
CASE(404)
CASE(405)
// 10
CASE(369)
CASE(370)
CASE(371)
// J
CASE(494)
CASE(495)
CASE(496)
// Q
CASE(415)
CASE(416)
// K
CASE(385)
CASE(386)
CASE(387)
// A
CASE(417)
CASE(418)
CASE(419)
DEFAULT
END_SWITCH
// ФЛОП_3
SWITCH($card_3)
// 2
CASE(425)
CASE(426)
CASE(427)
// 3
CASE(429)
CASE(430)
CASE(431)
// 4
CASE(479)
CASE(480)
CASE(481)
// 5
CASE(455)
CASE(456)
CASE(457)
// 6
CASE(412)
CASE(413)
CASE(414)
// 7
CASE(507)
CASE(508)
CASE(509)
// 8
CASE(346)
CASE(347)
CASE(348)
// 9
CASE(403)
CASE(404)
CASE(405)
// 10
CASE(369)
CASE(370)
CASE(371)
// J
CASE(494)
CASE(495)
CASE(496)
// Q
CASE(415)
CASE(416)
// K
CASE(385)
CASE(386)
CASE(387)
// A
CASE(417)
CASE(418)
CASE(419)
DEFAULT
END_SWITCH
// ТЕРН_4
SWITCH($card_4)
// 2
CASE(425)
CASE(426)
CASE(427)
// 3
CASE(429)
CASE(430)
CASE(431)
// 4
CASE(479)
CASE(480)
CASE(481)
// 5
CASE(455)
CASE(456)
CASE(457)
// 6
CASE(412)
CASE(413)
CASE(414)
// 7
CASE(507)
CASE(508)
CASE(509)
// 8
CASE(346)
CASE(347)
CASE(348)
// 9
CASE(403)
CASE(404)
CASE(405)
// 10
CASE(369)
CASE(370)
CASE(371)
// J
CASE(494)
CASE(495)
CASE(496)
// Q
CASE(415)
CASE(416)
// K
CASE(385)
CASE(386)
CASE(387)
// A
CASE(417)
CASE(418)
CASE(419)
DEFAULT
END_SWITCH
// РИВЕР_5
SWITCH($card_5)
// 2
CASE(425)
CASE(426)
CASE(427)
// 3
CASE(429)
CASE(430)
CASE(431)
// 4
CASE(479)
CASE(480)
CASE(481)
// 5
CASE(455)
CASE(456)
CASE(457)
// 6
CASE(412)
CASE(413)
CASE(414)
// 7
CASE(507)
CASE(508)
CASE(509)
// 8
CASE(346)
CASE(347)
CASE(348)
// 9
CASE(403)
CASE(404)
CASE(405)
// 10
CASE(369)
CASE(370)
CASE(371)
// J
CASE(494)
CASE(495)
CASE(496)
// Q
CASE(415)
CASE(416)
// K
CASE(385)
CASE(386)
CASE(387)
// A
CASE(417)
CASE(418)
CASE(419)
DEFAULT
END_SWITCH
Для флопа,терна и ривера почему-то кол-во тех же пикселей иногда скачит -/+ 1 пиксель, потому для каждой карты у меня по 3 CASE'а. Только с дамой и тузом вышло, что между ними нельзя было так сделать, я проверил все позиции дамы и туза и вышло, что у дамы скачит только на -1 от первоначальных данных, а тузу уже свободные 3 "числа" отдал.
Задача в том, что я не могу придумать каким образом обозначить карты или цифрами, или строками, или еще чем-то. Так как комбинаций в покере 10:
// Нет совпадений
// Пара
// Две пары
// Сет
// Стрит
// Флеш
// Фул хаус
// Каре
// Стрит фшел
// Флеш рояль
Но разновидностей того же стрита, не учитывая масть (кстати масть я буду также определять как и саму карту, по кол-ву пикселей фона) от туза до 5, от 3 до 6 и т.д. Помогите советом, ничего пока не приходит толкового и не геморного)
Пока есть идея создать основные 9 шаблонов комбинаций, но как потом подставлять и перебирать не могу придумать.
И самая главная проблема со стритом. Там нужно, чтобы было 5 карт подряд (5,6,7,8,9 - допустим) и нужно задавать карты таким образом, чтобы можно было потом эту зависимость/очередность тоже проверить. Толкните идей, пожалуйста.