1
Общие вопросы / Re: Обычное условие, но почему не работает?
« on: June 15, 2019, 03:20:44 AM »
Спасибо, заново переделывать уже не буду конечно, но на х32 пожалуй перейду.
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
arrpush($x, 2.2)
arrpush($x, 14.2)
IF( $x[0] - int($x[0]) = $x[1] - int($x[1]) )
logwrite("ок")
end_if
halt
Такой бот прокатит там, где народ просто приятно проводит время ничем не рискуя.Какой "такой"? Прописать распознание комбинаций и все!!!
есть предложение адаптировать бота под покерстарс и рубить бабки лопатойАдаптацией под нужный рум будет заниматься каждый пользователь сам.
Это точно правильно?Спасибо. Это я увидел сразу и потом исправил, но забыл добавить скобку в условие и не поправилось. Уже поправил там.
16:55:28 Карта 1 = 9.3 / Карта 2 = 9.2
16:55:28 подряд карт: 1
16:55:28 Слабые карты - Сбрасываем
//Префлоп
$card_1 = 9.2 // 9
$card_2 = 9.3 // 10
LOGWRITE ("Карта 1 = ", $card_1, " / ", "Карта 2 = ", $card_2 )
// загоняем их в массив
ARRPUSH($all, INT($card_1))
ARRPUSH($all, INT($card_2))
// сортируем массив по возрастанию
$len = ARRSIZE($all)
FOR($num=0, $num < $len - 1)
$min = $all[$num]
$ind = $num
FOR($i=($num+1), $i < $len)
IF($all[$i] < $min)
$min = $all[$i]
$ind = $i
END_IF
END_CYC
$minimum = $all[$ind]
$all[$ind] = $all[$num]
$all[$num] = $minimum
END_CYC
// ранг меньшей карты в руках
$min_card_preflop_podr = $all[0]
// считаем сколько карт есть подряд
$podr = 1
FOR($i=0, $i < $len-1)
IF($all[$i] = $all[$i+1] - 1)
INC($podr)
ELSE
$podr = 1
END_IF
IF($podr = 5)
$i = 100 // прерываем
END_IF
LOGWRITE ("подряд карт: ", $podr)
END_CYC
// МАСТЬ
UNDEFINE($all)
ARRPUSH($allm, $card_1)
ARRPUSH($allm, $card_2)
//массив количества карт по мастям
ARRPUSH($mast_count, 0)
ARRPUSH($mast_count, 0)
ARRPUSH($mast_count, 0)
ARRPUSH($mast_count, 0)
// сколько карт по мастям
FOR($i=0, $i < ARRSIZE($allm))
$card = $allm[$i]
$m = ($card - INT($card)) * 10
$mast_count[$m-1] = $mast_count[$m-1] +1
END_CYC
// Обе ли карты одной масти
FOR($i=0, $i < ARRSIZE($mast_count))
IF($mast_count[$i] > 1)
LOGWRITE("Две карты масти ", $i+1)
$mast_preflop = 1
END_IF
END_CYC
// *****ВАРИАНТЫ ДЕЙСТВИЙ НА ПРЕФЛОПЕ*****
IF(($min_card_preflop_podr < 10) & ($mast_preflop = 1) & ($podr = 2))
// Вариант 6
LOGWRITE ("карты идут подряд, одной масти, обе ниже 10")
ELSE
IF(($min_card_preflop_podr < 10) & ($podr = 2))
// Вариант 7
LOGWRITE ("карты идут подряд, разной масти, обе ниже 10")
ELSE
IF(($min_card_preflop_podr > 9) & ($mast_preflop = 1) & ($podr = 2))
// Вариант 4
LOGWRITE ("карты идут подряд, одной масти, обе выше 10 включительно")
ELSE
IF(($min_card_preflop_podr > 9) & ($podr = 2))
// Вариант 5
LOGWRITE ("карты идут подряд, разной масти, обе выше 10 включительно")
ELSE
IF(($min_card_preflop_podr > 9) & ($mast_preflop = 1))
// Вариант 2
LOGWRITE ("обе карты выше 10 включительно и одной масти(но не подряд)")
ELSE
IF(INT($card_1) = INT($card_2) & ($min_card_preflop_podr > 9))
// Вариант 1
LOGWRITE ("обе карты одного ранга выше 10 включительно(ПАРА)")
ELSE
IF($min_card_preflop_podr > 9)
// Вариант 3
LOGWRITE ("обе карты выше 10 включительно и разной масти(но не подряд)")
ELSE
// Слабые карты - Сбрасываем
LOGWRITE ("Слабые карты - Сбрасываем")
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
HALT
16:08:06 Карта 1 = 9.1 / Карта 2 = 8.2
16:08:06 подряд карт: 2
16:08:06 карты идут подряд, разной масти, обе ниже 10
16:09:55 Карта 1 = 9.1 / Карта 2 = 11.2
16:09:55 подряд карт: 1
16:09:55 Слабые карты - Сбрасываем
16:11:58 Карта 1 = 9.1 / Карта 2 = 9.2
16:11:58 подряд карт: 1
16:11:58 обе карты одного ранга выше 10 включительно(ПАРА)
16:15:47 Карта 1 = 11.1 / Карта 2 = 12.2
16:15:47 подряд карт: 2
16:15:47 карты идут подряд, разной масти, обе выше 10 включительно
По тузу можно так...
Если в картах есть туз, модуль/подпрограмма определения стрита вызывается 2 раза
В первый раз ей передаётся туз как 14, во второй раз как 2.
Для стрита ещё можно возвращать номер комбинации 1-9
5.1 - старшая карта шестёрка
5.2 - старшая карта семёрка
...
5.9 - старшая карта туз
Нужно делать два типа анализа ситуации.Да, вот это как раз в точку.
Какие комбинации у нас УЖЕ есть с учётом открытых карт.
Какие комбинации у нас могут быть.
Если не нужно заглядывать вперёд больше чем на 1 карту, тогда проще.Я думаю, что не нужно. Вначале когда на руки дают 2 карты, бот будет играть только с определенными картами. Допустим со всеми картами выше 10 (если обе карты такого ранга), а если они меньше, то можно играть только с идущими подряд, например, (5,6) или (2,3) . Когда он решит играть дальше, нужно будет оценивать. Но загадывать на 2 карты вперед не нужно, на 1 вполне хватит. Ибо таких ситуаций, когда допустим до стрита не хватает 2 карты, и чтобы из 2 карт зашли обе нужные %-вероятности маленький.
$card_1 = 5 // 5
$card_2 = 9 // 9
$card_3 = 6 // 6
$card_4 = 11 // валет
$card_5 = 7 // 7
$card_6 = 14 // туз
$card_7 = 0 // еще не зашла нужная 8
17:45:20 0
17:45:20 5
17:45:20 6
17:45:20 7
17:45:20 9
17:45:20 11
17:45:20 14
17:45:20 подряд карт: 1
17:45:20 подряд карт: 2
17:45:20 подряд карт: 3
17:45:20 подряд карт: 1
17:45:20 подряд карт: 1
17:45:20 подряд карт: 1
17:45:20 подряд идущих карт: 1