Welcome, Guest. Please login or register.
April 13, 2021, 02:15:19 AM
Home Help Login Register
News:

Shanky Technologies Poker Bot Support Forum  |  General Category  |  PPL Support (Moderator: sngbot)  |  Topic: Double-Suited PLO Profile PPL help 0 Members and 1 Guest are viewing this topic.
Pages: [1] Print
Author Topic: Double-Suited PLO Profile PPL help  (Read 953 times)
JoeBing
Botter
***

Karma: 5
Posts: 108


« on: December 23, 2020, 06:57:01 PM »

Creating a new profile from scratch and trying to organise hands by their quality (Monsters, Premium, etc)

Before I get too carried away, do I have to specify every single suit possibility (like I've seen in a Previous Post) or can I use a code like this for double-suited Monsters (for hands like AdAcKdKc, etc) :

// AAKK AAJT AAQQ AAJJ AATT AA99
when (hand =AsuitedAsuited and hand =KsuitedKsuited or hand  =QsuitedQsuited or hand =JsuitedJsuited or hand = TsuitedTsuited or hand 9suited9suited and suitsInHand =2) UserMonster
Logged
Egor
Forum Admin
Extreme Botter
*****

Karma: 368
Posts: 34087



WWW
« Reply #1 on: December 23, 2020, 07:36:12 PM »

Good question. I need to ask MS.
Logged

Please do not PM me about license issues or help stuff - email me or use the Help board. Thanks! -Egor
Mad Scientist
Forum Admin
Serious Botter
*****

Karma: 94
Posts: 567


Shanky Bonus Bots Rock!


« Reply #2 on: December 24, 2020, 05:07:27 AM »

AAKK AAJT AAQQ AAJJ AATT AA99
Possibly the shortest way of coding this is

when DoubleSuited and (hand = AAKK or hand = AAJT or hand = AAQQ or hand = AAJJ or hand = AATT or hand = AA99) userMonster
Logged
Mad Scientist
Forum Admin
Serious Botter
*****

Karma: 94
Posts: 567


Shanky Bonus Bots Rock!


« Reply #3 on: December 24, 2020, 05:11:52 AM »

Note that DoubleSuited is different from SuitsInHand = 2 since SuitsInHand = 2 would be true even when there are 3 of 1 suite and 1 of another suit in hand. Please see description of DoubleSuited in the manual
Logged
Egor
Forum Admin
Extreme Botter
*****

Karma: 368
Posts: 34087



WWW
« Reply #4 on: December 24, 2020, 07:28:02 AM »

yeah he's right use the doublesuited boolean variable and spell out the hands
Logged

Please do not PM me about license issues or help stuff - email me or use the Help board. Thanks! -Egor
JoeBing
Botter
***

Karma: 5
Posts: 108


« Reply #5 on: December 24, 2020, 08:16:40 AM »

Thanks for that..

I wonder if AsuitedAsuited code will still work in some situations, or do I need to change it to what you suggested (or will both work, yours is just easier to code?).

I just want to make sure my monsters are actual monsters and not accidently valuing something too high (like a Jhigh flush draw).

For example, how I would define a monster vs premium hand like KQJT
Monster would be: Kh Qd Jh Td   (High wrap with both a King-high heart-flush draw and Queen-high diamond-flush draw)
and
Premium would be Kh Qh Jd Td  (High wrap with a King-high heart-flush draw but only a Jack-high diamond-flush draw)

I've made adjustments to my code, but wondering if I have to remove AsuitedAsuited, KsuitedKsuited altogether based on your example?:

Code:
// AAKK AAJT AAQQ AAJJ AATT AA99 //
when DoubleSuited and (hand =AsuitedAsuited and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA

// KKQQ KKJJ KQJT KKTT KKAJ KKAT KKQJ KKAQ //
when DoubleSuited and (hand =KsuitedKsuited and hand =QQ or hand =JJ or hand = JT or hand =TT or hand =AJ or hand =QJ or hand =AQ) UserMonsterKK

// QQJJ QQTT QQAK QQAJ QQAT QQKJ //
when DoubleSuited and (hand =QsuitedQsuited and hand =JJ or hand =TT or hand =AK or hand =AJ or hand =AT or hand =KJ) UserMonsterQQ

// JT98 JJTT JJT9 //
when DoubleSuited and (hand =JT98 or hand =JJTT or hand =JJT9) UserMonsterJJ

// AKQJ AKQ9 KQJT QJT9 JT89 (Double-Suited) //
when DoubleSuited and (hand =AsuitedKQJ or hand =AsuitedKQ9 or hand =KsuitedQJT or hand =QJT9 or hand =JT89) UserHighWrapDBS

// AAKQ AKKQ QJJT KQJJ (Double-Suited) //
when DoubleSuited and (hand =AsuitedAKQ or hand =AsuitedKKQ or hand =QJJT or hand =KQJJ) UserHighWrapPairDBS

// AQJT AKJT AKQT (Double-Suited) //
when DoubleSuited and (hand =AsuitedQJT or hand =AsuitedKJT or hand =AsuitedKQT) UserHighGapperDS1

// If Shortstacked //
when (UserMonsterAA or UserMonsterKK or UserMonsterQQ or UserMonsterJJ or UserHighWrapPairDBS or UserHighGapperDS1)
When StackSize <= 5 raisepot force

// Else //

when UserMonsterAA
when raises >=0 raisepot force
when raises = 0 and Calls <= 2 call force
when raises = 0 and Calls >= 3 raisePot force
when raises >= 1 and BetSize <= 11 call force
when raises >= 1 and Calls >= 2 raisepot force




Logged
JoeBing
Botter
***

Karma: 5
Posts: 108


« Reply #6 on: December 30, 2020, 06:04:37 AM »

Just wondering if you saw my last post, I'm still unsure if I can use the code that I have written?
Logged
Egor
Forum Admin
Extreme Botter
*****

Karma: 368
Posts: 34087



WWW
« Reply #7 on: December 30, 2020, 08:17:52 AM »

Sorry about that.

AsuitedAsuited will not work because it will simply see the same ace suited as true twice, I think. Use doublesuited.
Logged

Please do not PM me about license issues or help stuff - email me or use the Help board. Thanks! -Egor
JoeBing
Botter
***

Karma: 5
Posts: 108


« Reply #8 on: December 30, 2020, 11:05:41 AM »

Updated ....


Code:
// AAKK AAJT AAQQ AAJJ AATT AA99 //
when DoubleSuited and (hand =AsuitedA and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA

// AAKK AAJT AAQQ AAJJ AATT AA99 //
when DoubleSuited and (hand =AsuitedAKK or hand =AsuitedAJT or hand =AsuitedAQQ or hand =AsuitedAJJ or hand =AsuitedATT) UserPremiumAA


// KKQQ KKJJ KQJT KKTT KKAJ KKAT KKQJ KKAQ //
when DoubleSuited and (hand =KK and hand =QQ or hand =JJ or hand = JT or hand =TT or hand =AsuitedJ or hand =QJ or hand =AsuitedQ) UserMonsterKK

// KKQQ KKJJ KQJT KKTT KKAJ KKAT KKQJ KKJT KKAQ //
when DoubleSuited and (hand =KKQQ or hand =KKJJ or hand =KQJT or hand =KKTT or hand =AsuitedKKT or hand =KKQJ or hand =KKJT or hand =AsuitedKKQ) UserPremiumKK


...but now looks like my monsters and premiums are the same hands (redundant double-coding as well as they are no longer monsters if it isn't double-suited Aces

I guess the workaround to ensure Double-Suited Aces are monsters is to code every combination of AhAdAcAs


Code:
when DoubleSuited and (hand =AcAd and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AcAh and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AcAs and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AdAh and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AdAs and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AhAs and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA



Logged
Egor
Forum Admin
Extreme Botter
*****

Karma: 368
Posts: 34087



WWW
« Reply #9 on: December 30, 2020, 06:42:56 PM »

Think I am lost in that now.
Logged

Please do not PM me about license issues or help stuff - email me or use the Help board. Thanks! -Egor
JoeBing
Botter
***

Karma: 5
Posts: 108


« Reply #10 on: December 31, 2020, 06:39:37 AM »

Think I am lost in that now.

lol, that's how I feel every new section Smiley
Logged
ykcip75
Experienced Botter
*****

Karma: 68
Posts: 394


Shanky Bonus Bots Rock!


« Reply #11 on: January 01, 2021, 06:12:29 AM »

Updated ....


Code:
// AAKK AAJT AAQQ AAJJ AATT AA99 //
when DoubleSuited and (hand =AsuitedA and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA

// AAKK AAJT AAQQ AAJJ AATT AA99 //
when DoubleSuited and (hand =AsuitedAKK or hand =AsuitedAJT or hand =AsuitedAQQ or hand =AsuitedAJJ or hand =AsuitedATT) UserPremiumAA


// KKQQ KKJJ KQJT KKTT KKAJ KKAT KKQJ KKAQ //
when DoubleSuited and (hand =KK and hand =QQ or hand =JJ or hand = JT or hand =TT or hand =AsuitedJ or hand =QJ or hand =AsuitedQ) UserMonsterKK

// KKQQ KKJJ KQJT KKTT KKAJ KKAT KKQJ KKJT KKAQ //
when DoubleSuited and (hand =KKQQ or hand =KKJJ or hand =KQJT or hand =KKTT or hand =AsuitedKKT or hand =KKQJ or hand =KKJT or hand =AsuitedKKQ) UserPremiumKK


...but now looks like my monsters and premiums are the same hands (redundant double-coding as well as they are no longer monsters if it isn't double-suited Aces

I guess the workaround to ensure Double-Suited Aces are monsters is to code every combination of AhAdAcAs


Code:
when DoubleSuited and (hand =AcAd and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AcAh and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AcAs and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AdAh and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AdAs and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA
when DoubleSuited and (hand =AhAs and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA





1. For Double Suited Aces just use when DoubleSuited and hand = AA....
It's enough because when you have a pair in hand the Aces cannot be suited to each other or the deck is rigged...Grin
when you have a doublesuited hand with a pair it will always be doublesuited to that pair.

Thanks for that..

I wonder if AsuitedAsuited code will still work in some situations, or do I need to change it to what you suggested (or will both work, yours is just easier to code?).

I just want to make sure my monsters are actual monsters and not accidently valuing something too high (like a Jhigh flush draw).

For example, how I would define a monster vs premium hand like KQJT
Monster would be: Kh Qd Jh Td   (High wrap with both a King-high heart-flush draw and Queen-high diamond-flush draw)
and
Premium would be Kh Qh Jd Td  (High wrap with a King-high heart-flush draw but only a Jack-high diamond-flush draw)

I've made adjustments to my code, but wondering if I have to remove AsuitedAsuited, KsuitedKsuited altogether based on your example?:

Code:
// AAKK AAJT AAQQ AAJJ AATT AA99 //
when DoubleSuited and (hand =AsuitedAsuited and hand =KK or hand =JT or hand =QQ or hand =JJ or hand = TT or hand =99) UserMonsterAA

// KKQQ KKJJ KQJT KKTT KKAJ KKAT KKQJ KKAQ //
when DoubleSuited and (hand =KsuitedKsuited and hand =QQ or hand =JJ or hand = JT or hand =TT or hand =AJ or hand =QJ or hand =AQ) UserMonsterKK

// QQJJ QQTT QQAK QQAJ QQAT QQKJ //
when DoubleSuited and (hand =QsuitedQsuited and hand =JJ or hand =TT or hand =AK or hand =AJ or hand =AT or hand =KJ) UserMonsterQQ

// JT98 JJTT JJT9 //
when DoubleSuited and (hand =JT98 or hand =JJTT or hand =JJT9) UserMonsterJJ

// AKQJ AKQ9 KQJT QJT9 JT89 (Double-Suited) //
when DoubleSuited and (hand =AsuitedKQJ or hand =AsuitedKQ9 or hand =KsuitedQJT or hand =QJT9 or hand =JT89) UserHighWrapDBS

// AAKQ AKKQ QJJT KQJJ (Double-Suited) //
when DoubleSuited and (hand =AsuitedAKQ or hand =AsuitedKKQ or hand =QJJT or hand =KQJJ) UserHighWrapPairDBS

// AQJT AKJT AKQT (Double-Suited) //
when DoubleSuited and (hand =AsuitedQJT or hand =AsuitedKJT or hand =AsuitedKQT) UserHighGapperDS1

// If Shortstacked //
when (UserMonsterAA or UserMonsterKK or UserMonsterQQ or UserMonsterJJ or UserHighWrapPairDBS or UserHighGapperDS1)
When StackSize <= 5 raisepot force

// Else //

when UserMonsterAA
when raises >=0 raisepot force
when raises = 0 and Calls <= 2 call force
when raises = 0 and Calls >= 3 raisePot force
when raises >= 1 and BetSize <= 11 call force
when raises >= 1 and Calls >= 2 raisepot force






For the KQJT you're right unless you explicitly specify the suit you cannot make the difference.
But if you use user variables you can do the" two holdem hands trick" to describe your hand.

Code:
//Suited Hands Definition

when hand = AcKc or hand = AsKs or hand = AdKd or hand = AhKh User_AKSuited
when hand = AcQc or hand = AsQs or hand = AdQd or hand = AhQh User_AQSuited
when hand = AcJc or hand = AsJs or hand = AdJd or hand = AhJh User_AJSuited
when hand = AcTc or hand = AsTs or hand = AdTd or hand = AhTh User_ATSuited
when hand = Ac9c or hand = As9s or hand = Ad9d or hand = Ah9h User_A9Suited
when hand = Ac8c or hand = As8s or hand = Ad8d or hand = Ah8h User_A8Suited
when hand = Ac7c or hand = As7s or hand = Ad7d or hand = Ah7h User_A7Suited
when hand = Ac6c or hand = As6s or hand = Ad6d or hand = Ah6h User_A6Suited
when hand = Ac5c or hand = As5s or hand = Ad5d or hand = Ah5h User_A5Suited
when hand = Ac4c or hand = As4s or hand = Ad4d or hand = Ah4h User_A4Suited
when hand = Ac3c or hand = As3s or hand = Ad3d or hand = Ah3h User_A3Suited
when hand = Ac2c or hand = As2s or hand = Ad2d or hand = Ah2h User_A2Suited
when hand = KcQc or hand = KsQs or hand = KdQd or hand = KhQh User_KQSuited
when hand = KcJc or hand = KsJs or hand = KdJd or hand = KhJh User_KJSuited
when hand = KcTc or hand = KsTs or hand = KdTd or hand = KhTh User_KTSuited
when hand = Kc9c or hand = Ks9s or hand = Kd9d or hand = Kh9h User_K9Suited
when hand = Kc8c or hand = Ks8s or hand = Kd8d or hand = Kh8h User_K8Suited
when hand = Kc7c or hand = Ks7s or hand = Kd7d or hand = Kh7h User_K7Suited
when hand = Kc6c or hand = Ks6s or hand = Kd6d or hand = Kh6h User_K6Suited
when hand = Kc5c or hand = Ks5s or hand = Kd5d or hand = Kh5h User_K5Suited
when hand = Kc4c or hand = Ks4s or hand = Kd4d or hand = Kh4h User_K4Suited
when hand = Kc3c or hand = Ks3s or hand = Kd3d or hand = Kh3h User_K3Suited
when hand = Kc2c or hand = Ks2s or hand = Kd2d or hand = Kh2h User_K2Suited
when hand = QcJc or hand = QsJs or hand = QdJd or hand = QhJh User_QJSuited
when hand = QcTc or hand = QsTs or hand = QdTd or hand = QhTh User_QTSuited
when hand = Qc9c or hand = Qs9s or hand = Qd9d or hand = Qh9h User_Q9Suited
when hand = Qc8c or hand = Qs8s or hand = Qd8d or hand = Qh8h User_Q8Suited
when hand = Qc7c or hand = Qs7s or hand = Qd7d or hand = Qh7h User_Q7Suited
when hand = Qc6c or hand = Qs6s or hand = Qd6d or hand = Qh6h User_Q6Suited
when hand = Qc5c or hand = Qs5s or hand = Qd5d or hand = Qh5h User_Q5Suited
when hand = Qc4c or hand = Qs4s or hand = Qd4d or hand = Qh4h User_Q4Suited
when hand = Qc3c or hand = Qs3s or hand = Qd3d or hand = Qh3h User_Q3Suited
when hand = Qc2c or hand = Qs2s or hand = Qd2d or hand = Qh2h User_Q2Suited
when hand = JcTc or hand = JsTs or hand = JdTd or hand = JhTh User_JTSuited
when hand = Jc9c or hand = Js9s or hand = Jd9d or hand = Jh9h User_J9Suited
when hand = Jc8c or hand = Js8s or hand = Jd8d or hand = Jh8h User_J8Suited
when hand = Jc7c or hand = Js7s or hand = Jd7d or hand = Jh7h User_J7Suited
when hand = Jc6c or hand = Js6s or hand = Jd6d or hand = Jh6h User_J6Suited
when hand = Jc5c or hand = Js5s or hand = Jd5d or hand = Jh5h User_J5Suited
when hand = Jc4c or hand = Js4s or hand = Jd4d or hand = Jh4h User_J4Suited
when hand = Jc3c or hand = Js3s or hand = Jd3d or hand = Jh3h User_J3Suited
when hand = Jc2c or hand = Js2s or hand = Jd2d or hand = Jh2h User_J2Suited
when hand = Tc9c or hand = Ts9s or hand = Td9d or hand = Th9h User_T9Suited
when hand = Tc8c or hand = Ts8s or hand = Td8d or hand = Th8h User_T8Suited
when hand = Tc7c or hand = Ts7s or hand = Td7d or hand = Th7h User_T7Suited
when hand = Tc6c or hand = Ts6s or hand = Td6d or hand = Th6h User_T6Suited
when hand = Tc5c or hand = Ts5s or hand = Td5d or hand = Th5h User_T5Suited
when hand = Tc4c or hand = Ts4s or hand = Td4d or hand = Th4h User_T4Suited
when hand = Tc3c or hand = Ts3s or hand = Td3d or hand = Th3h User_T3Suited
when hand = Tc2c or hand = Ts2s or hand = Td2d or hand = Th2h User_T2Suited
when hand = 9c8c or hand = 9s8s or hand = 9d8d or hand = 9h8h User_98Suited
when hand = 9c7c or hand = 9s7s or hand = 9d7d or hand = 9h7h User_97Suited
when hand = 9c6c or hand = 9s6s or hand = 9d6d or hand = 9h6h User_96Suited
when hand = 9c5c or hand = 9s5s or hand = 9d5d or hand = 9h5h User_95Suited
when hand = 9c4c or hand = 9s4s or hand = 9d4d or hand = 9h4h User_94Suited
when hand = 9c3c or hand = 9s3s or hand = 9d3d or hand = 9h3h User_93Suited
when hand = 9c2c or hand = 9s2s or hand = 9d2d or hand = 9h2h User_92Suited
when hand = 8c7c or hand = 8s7s or hand = 8d7d or hand = 8h7h User_87Suited
when hand = 8c6c or hand = 8s6s or hand = 8d6d or hand = 8h6h User_86Suited
when hand = 8c5c or hand = 8s5s or hand = 8d5d or hand = 8h5h User_85Suited
when hand = 8c4c or hand = 8s4s or hand = 8d4d or hand = 8h4h User_84Suited
when hand = 8c3c or hand = 8s3s or hand = 8d3d or hand = 8h3h User_83Suited
when hand = 8c2c or hand = 8s2s or hand = 8d2d or hand = 8h2h User_82Suited
when hand = 7c6c or hand = 7s6s or hand = 7d6d or hand = 7h6h User_76Suited
when hand = 7c5c or hand = 7s5s or hand = 7d5d or hand = 7h5h User_75Suited
when hand = 7c4c or hand = 7s4s or hand = 7d4d or hand = 7h4h User_74Suited
when hand = 7c3c or hand = 7s3s or hand = 7d3d or hand = 7h3h User_73Suited
when hand = 7c2c or hand = 7s2s or hand = 7d2d or hand = 7h2h User_72Suited
when hand = 6c5c or hand = 6s5s or hand = 6d5d or hand = 6h5h User_65Suited
when hand = 6c4c or hand = 6s4s or hand = 6d4d or hand = 6h4h User_64Suited
when hand = 6c3c or hand = 6s3s or hand = 6d3d or hand = 6h3h User_63Suited
when hand = 6c2c or hand = 6s2s or hand = 6d2d or hand = 6h2h User_62Suited
when hand = 5c4c or hand = 5s4s or hand = 5d4d or hand = 5h4h User_54Suited
when hand = 5c3c or hand = 5s3s or hand = 5d3d or hand = 5h3h User_53Suited
when hand = 5c2c or hand = 5s2s or hand = 5d2d or hand = 5h2h User_52Suited
when hand = 4c3c or hand = 4s3s or hand = 4d3d or hand = 4h3h User_43Suited
when hand = 4c2c or hand = 4s2s or hand = 4d2d or hand = 4h2h User_42Suited
when hand = 3c2c or hand = 3s2s or hand = 3d2d or hand = 3h2h User_32Suited

when DoubleSuited and User_KJSuited And User_QTSuited...

when DoubleSuited and User_KQSuited and User_JTSuited...

This is still rough PPL but hope this helps....
Logged
Kcole72
Confused Newbie
*

Karma: 0
Posts: 10


« Reply #12 on: January 16, 2021, 05:04:02 PM »



I just want to make sure my monsters are actual monsters and not accidently valuing something too high (like a Jhigh flush draw).

For example, how I would define a monster vs premium hand like KQJT
Monster would be: Kh Qd Jh Td   (High wrap with both a King-high heart-flush draw and Queen-high diamond-flush draw)
and
Premium would be Kh Qh Jd Td  (High wrap with a King-high heart-flush draw but only a Jack-high diamond-flush draw)









Just currious are you raising either of these hands in the SB? or BB? how are you responding to an early raise with these hands?
Logged
JoeBing
Botter
***

Karma: 5
Posts: 108


« Reply #13 on: January 17, 2021, 10:37:17 AM »

Just currious are you raising either of these hands in the SB? or BB? how are you responding to an early raise with these hands?


I haven't quite got it working to what I dreamed of. If you look at this post you'll see the problem I'm having with UserVariables within UserVariables, and the painstaking workaround that I'm using (until I come up with a better solution, which I've been playing with over the past few days - semi-successfully and semi-unsuccessfully.. doing my head in actually).

Basically, I used to have my hands grouped by strength of position, but that doesn't work because there's too many user-within-user variables:

Code:
//[[[[[[[[[ EARLY POSITION / STRONGEST HANDS ]]]]]]]]]//
when (UserAAA or UserAAAus or UserPremiumKK or UserPremiumQQ or UserPremiumJJ or UserBigAA or UserBigKK or UserBigQQ or UserBigJJ or 
UserHighWrapDBS or UserHighWrapSS or UserHighWrapPairDBS or UserHighWrapPairSS or UserHighGapperDS1 or UserHighGapperDS2 or UserHighDanglerAAUnsuited or
UserHighDanglerKKUnsuited or UserHighDanglerQQ or UserHighDanglerQQUnsuited or UserHighDanglerAsJJ or UserHighDanglerAsJJUnsuited or UserHighDanglerJJ or
UserHighDanglerJJUnsuited or UserHighWrapDanglerAK or UserHighWrapDanglerAKUnsuited or UserHighWrapDanglerAQ or UserHighWrapDanglerAQUnsuited or
UserHighWrapDanglerKK or UserHighWrapDanglerKKUnsuited or UserHighWrapDanglerAJ or UserHighWrapDanglerKQ or UserHighWrapDanglerQJ or UserHighWrapDanglerJT or UserKKDBLPR or UserQQDBLPR or UserHighDBLPR or UserJJTT99 or UserJJDBLPR or UserTTDBLPR or UserMidDBLPR or User8877 or User876DBLPR or UserSuitedDBLPR or UserGarbageAA or UserGarbageKK) UserEarlyHands

So I had to change my hand-ranges based on "value" instead and then coded them very similar to how I had it organized before with the strongest hands betting from UTG and the weaker hands calling from later position.

But I haven't yet coded the hands from the previous post. So I'm not testing those ones yet, so can't answer your question with accuracy yet.

What I'm doing is grouping hand-ranges based on their values, like:

Code:

//*========================-- [[ Pre-Flop Actions ]] --=====================*
//--[[Mo]]----[[[[ *** Monster From Any Position *** ]]]]----------------------[ PFA-MO ]
//--[[Hu]]----[[[[ *** Headsup *** ]]]]----------------------------------------[ PFA-HU ]
//--[[Sh]]----[[[[ *** Short-Handed (3 Or Less Players) ***--------------------[ PFA-SH ]
//--[[10]]----[[[[ Stack Off Hands > Raise More Than 10 Bb ]]]]----------------[ PFA-10 ]
//---[[9]]----[[[[ Premium Hands > Raise Up To 9 Bb ]]]]------------------------[ PFA-9 ]
//---[[8]]----[[[[ Big Hands < Call Up To 8 Bb ]]]]-----------------------------[ PFA-8 ]
//---[[7]]----[[[[ High Hands < Call Up To 7 Bb ]]]]----------------------------[ PFA-7 ]
//---[[6]]----[[[[ Great Hands < Call Up To 6 Bb ]]]]---------------------------[ PFA-6 ]
//---[[5]]----[[[[ Be Cautious - Premium Hands < Call Up To 5 Bb ]]]]-----------[ PFA-5 ]
//---[[4]]----[[[[ Medium (Late Position Hands Only) < Call Up To 4 Bb ]]]]----[ PFA-4 ]
//---[[3]]----[[[[ Limp Hands < Call Up To 3 Bb ]]]]----------------------------[ PFA-3 ]
//---[[2]]----[[[[ Button Or Blinds Limp Multiway ]]]]--------------------------[ PFA-2 ]

And so after I've coded the hands, I put them in the group I think they belong in.. like:


Code:
//*========================-- [[ [DPHR] Defining Positional Hand-Ranges ]] --=====================*
//[[Group10]]--[[ userRAISEPOTHANDS ]]
when (userAAKK or userAAKQ or userAAKJ or userAAKT or userAAQQ or userAAQJ or userAAQT or userAAJJ or userAAJT or userAAJ9 or userAATT or userAAT9 or userAA99) userAA_PREMIUM
when (userAKKQ or userAKKJ or userAKKT or userKKQQ or userKKQJ or userKKQT or userKKJJ or userKKJT or userKKJ9 or userKKTT or userKKT9) userKK_PREMIUM
when (userAA_PREMIUM or userKK_PREMIUM) UserRaisePotHands
when (UserMonsterAA or UserPremiumAA or UserBigAA or UserHighWrapDBS or UserHighGapperDS1 or UserKKDBLPR or UserHighDBLPR or UserBigKK) UserRaisePotHands

//-[[Group9]]--[[ userRAISEBIG9HANDS ]]
when (userAAK9 or userAAQ9 or userAA98 or userAA97 or userAA88 or userAA87 or userAA77 or userAA76 or userAA75 or userAA66 or userAA65 or userAA64 or userAA55 or userAA54 or userAA44) userAA_MEDIUM
when (userKKQ9 or userKKQ8 or userKKJ7 or userKKT8 or userKK99 or userKK98) userKK_MEDIUM
When (UserMonsterKK or UserPremiumKK or UserHighDanglerAA or UserAASuitedDBLPR or UserAADBLPR or UserHighDanglerAAUnSuited) UserRaiseBIG9Hands
when (userAA_MEDIUM or userKK_MEDIUM) UserRaiseBIG9Hands

//-[[Group8]]--[[ userBIGCALL8HANDS ]]
when (userAKQQ or userKQQJ or userKQQT or userQQJJ or userQQJT or userQQTT or userQQ87) userQQ_PREMIUM
when (userKQJJ or userQJJT or userJJTT) userJJ_PREMIUM
When (UserMonsterQQ or UserMonsterJJ or UserPremiumQQ or UserPremiumJJ or UserBigQQ or UserBigJJ or UserHighWrapPairDBS or UserHighDanglerKK or UserHighDanglerQQ or UserHighDanglerAsJJ) UserBigCall8Hands
when (userQQ_PREMIUM or userJJ_PREMIUM) UserBigCall8Hands


And then with that information setup, I'm coding based on value/position, and so, with the monsters I'll reraise from any position:

Code:
// -------------------------------------------------------------------------------------------------
//--[[Mo]]----[[[[ *** Monster From Any Position *** ]]]]----------------------[ PFA-MO ]
// -------------------------------------------------------------------------------------------------

When Hand = A suited A suited and (Hand = KK or Hand = QQ or Hand = JJ or Hand = TT or Hand = KQ or Hand = KJ or Hand = KT or Hand = QJ or Hand = QT or Hand = JT) RaisePot Force
When (hand = AAKK or hand = AAQQ or hand = AAJJ) and Raises >= 2 and BotsLastAction = raise Call force
When (hand = AAKK or hand = AAQQ or hand = AAJJ) and Calls = 0 and Raises = 0 RaisePot force
When (hand = AAKK or hand = AAQQ or hand = AAJJ) and Raises >= 1 and Calls >= 1 and AmountToCall <= 3 RaisePot force
When (hand = AAKK or hand = AAQQ or hand = AAJJ) and BotsLastAction = raise call force

And with hands that are not so huge (but still pretty good), I code to fold in earlier positions, raise if it's been folded to me, and then have set a value to what I will call if the pot has been raised, so I'm basically testing my value theory..   so for example.. the "Call up to 4BB" hands.. if the pot has been raised to over 4BB, I just fold it.

And I intend to play with ranges and see what their ideal value-spot will be.


Code:
// -------------------------------------------------------------------------------------------------
//---[[4]]----[[[[ Medium (Late Position Hands Only) < Call Up To 4 Bb ]]]]----[ PFA-4 ]
// -------------------------------------------------------------------------------------------------

When (UserHighGapperDS2 or UserMidWrapDS or UserMidRundown or UserHighWrapDanglerAQUnSuited or UserHighWrapDanglerKKUnSuited or UserHighWrapDanglerKQ or UserHighWrapDanglerKJ or UserGarbageKK or UserGarbageQQ or UserSuitedMidWrap or UserSuitedLowWrap or User8877wrap)
when (UserUTG or UserUTG5) fold force
when UserMID and AmountToCall <= 4 call force
when (UserCO5 or UserLATE) and AmountToCall <= 4 call force
when (In Button or UserBu4 or UserBTN5) and Bets = 0 and Raises = 0 RaiseMin force
when (In SmallBlind or UserSb4 or UserSB5 or UserSB) and Calls = 0 and Bets = 0 and Raises = 0 RaiseMin force
When In BigBlind and opponents >= 1 and AmountToCall <= 4 call force
when AmountToCall <= 4 call force

//[[UserCall4Hands ]]
When UserCall4Hands and AmountToCall <= 4 call force

When UserCall4Hands
when (UserUTG or UserUTG5) fold force
when Calls = 0 and Bets = 0 and Raises = 0 and (In Button or UserBu4 or UserBTN5) RaiseMin force
when Calls = 0 and Bets = 0 and Raises = 0 and (In SmallBlind or UserSb4 or UserSB5 or UserSB) RaiseMin force
when BotsLastAction = raise and AmountToCall <= 5 call force
when AmountToCall <= 4 call force
when AmountToCall >= 4 fold force
when others beep force

and from the Button/SmallBlind etc.. I will only raise if it's been folded to me generally (unless it's a monster as per above)


Code:
// -------------------------------------------------------------------------------------------------
//---[[2]]----[[[[ Button Or Blinds Limp Multiway ]]]]--------------------------[ PFA-2 ]
// -------------------------------------------------------------------------------------------------

when (UserLowGapWraps or UserQxSTR or UserKxSTR or UserUnSuitedMidWrap or UserUnSuitedLowWrap or User73Wrap or UserAxSTR or User55BABYDBLPR) UserLimpHands


when (UserLowGapWraps or UserQxSTR or UserKxSTR or UserUnSuitedMidWrap or UserUnSuitedLowWrap or User73Wrap or UserAxSTR or User55BABYDBLPR)
when (UserUTG or UserUTG5 or UserMID or UserCO5) fold force
when (In Button or In SmallBlind or In BigBlind) and (Raises = 0 and Calls >= 1) and AmountToCall < 2 and StackSize > 15 call force

When (In Button or In SmallBlind) and Calls = 0 and Bets = 0 and Raises = 0
When PairInHand and not (TripsInHand or hand = 88 or hand = 77 or hand = 66 or hand = 55 or hand = 44 or hand = 33 or hand = 2 2) RaiseMin force
When DoubleSuited and (User_AKSuited or User_AQSuited or User_AJSuited or User_ATSuited or User_A9Suited or User_A8Suited or User_A8Suited or User_A7Suited or User_A6Suited or User_A5Suited or User_A4Suited or User_A3Suited or User_A2Suited or User_KQSuited or User_KJSuited or User_KTSuited or User_K9Suited) RaiseMin force
When ThreeCardStraightInHand and (hand = J T 7 or hand = J 9 7 or hand = J 8 7 or hand = T 9 6 or hand = T 8 6 or hand = T 7 6 or hand = 9 8 5 or hand = 9 7 5 or hand = 9 6 5 or hand = 8 7 4 or hand = 8 6 4 or hand = 8 5 4 or hand = 7 6 3 or hand = 7 5 3 or hand = 7 4 3) RaiseMin force
when User_AKSuited and ((hand = JT or hand = T9 or hand = 97 or hand = 54) or (ThreeCardStraightInHand or PairInHand or TwoPairInHand)) RaiseMin force
when (User_AKSuited or User_AQSuited or User_AJSuited or User_ATSuited) and (ThreeCardStraightInHand or PairInHand or TwoPairInHand or DoubleSuited) Raise 3 force
when (User_A9Suited or User_A8Suited or User_A8Suited or User_A7Suited or User_A6Suited or User_A5Suited or User_A4Suited or User_A3Suited or User_A2Suited or User_KQSuited or User_KJSuited or User_KTSuited or User_K9Suited) and (ThreeCardStraightInHand or PairInHand or TwoPairInHand or DoubleSuited) RaiseMin force
when UserMidRundown RaiseMin force
when DoubleSuited and UserMidRundown RaiseMin force
when BotsLastAction = raise call force

When (In Button or In SmallBlind or In BigBlind)
When PairInHand and not (TripsInHand or hand = 2 2 or hand = 3 3 or hand = 4 4 or hand = 5 5) and AmountToCall < 2 call force
When DoubleSuited and (User_A9Suited or User_A8Suited or User_A8Suited or User_A7Suited or User_A6Suited or User_A5Suited or User_A4Suited or User_A3Suited or User_A2Suited or User_KQSuited or User_KJSuited or User_KTSuited or User_K9Suited) and AmountToCall <= 2 call force
when (User_AKSuited or User_AQSuited or User_AJSuited or User_ATSuited) and ((hand = JT or hand = T9 or hand = 97 or hand = 54) or (ThreeCardStraightInHand or PairInHand or TwoPairInHand)) and AmountToCall <= 3 call force
when (User_AKSuited or User_AQSuited or User_AJSuited or User_ATSuited) and Bets = 0 and Calls = 0 and Raises = 0 Raise 3 force
when User_AKSuited and AmountToCall <= 2 call force
when UserMidRundown and OpponentsAtTable <= 3 and Raises = 1 and AmountToCall <= 3 Call force
when DoubleSuited and UserMidRundown and Calls <= 2 and Raises = 0 RaisePot force
when DoubleSuited and UserMidRundown and AmountToCall <= 5 Call force
when BotsLastAction = raise call

When (In SmallBlind or In BigBlind) and Calls >= 1 and Raises = 0
when (User_AKSuited or User_AQSuited or User_AJSuited or User_ATSuited) and AmountToCall <= 2 call force
when hand = AK and AmountToCall <= 2 call force
when PairInHand and not (hand = 2 or hand = 3 or hand = 4 or hand = 5 or hand = 6) and AmountToCall <= 1 and StackSize > 30 call force
when DoubleSuited and AmountToCall = 1 call force

when UserLimpHands
when (UserUTG or UserUTG5 or UserMID or UserCO5) fold force
when AmountToCall > 2 Fold force
when AmountToCall < 2 call force
when others beep force

So hopefully by grouping hands on values, I can switch them around as I see which hands do well against early-raisers etc.

After I've got the above working right and the post-flop situations done, then I'll also implement the UserEarlyRaiser/EarlyLimp and add that to the pre-flop starting range, which will also help playing more hand-ranges without going broke:

Code:
// Defining Early Raiser's Position //
when raises = 1 and lastraiserposition >= 5 UserEarlyRaiser
when raises = 0 and calls >= 1 and firstcallerposition >= 5 UserEarlyLimp

like maybe coding something to fold any non-premium / non-monster hands to an UserEarlyRaiser and to not 4bet if there's an EarlyRaiser/EarlyLimper unless holding a monster hand.



Logged
Kcole72
Confused Newbie
*

Karma: 0
Posts: 10


« Reply #14 on: January 17, 2021, 04:26:46 PM »

Got a quick question for you...
What do you do with KQJ9 UTG(all combos :Suited/rainbow/SS)? Anyone can answer this question if they want.
But deft currious as to how your bot plays the dift versions of this hand UTG.
Logged
Pages: [1] Print 
Shanky Technologies Poker Bot Support Forum  |  General Category  |  PPL Support (Moderator: sngbot)  |  Topic: Double-Suited PLO Profile PPL help
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!