Welcome, Guest. Please login or register.
December 01, 2021, 09:04:01 AM
Home Help Login Register
News:

Shanky Technologies Poker Bot Support Forum  |  General Category  |  PPL Support (Moderator: sngbot)  |  Topic: PPL allow embedded parentheses? 0 Members and 1 Guest are viewing this topic.
Pages: [1] Print
Author Topic: PPL allow embedded parentheses?  (Read 322 times)
Tripper89
zeros
*

Karma: -2
Posts: 25


« on: October 28, 2021, 06:26:08 PM »

Does PPL allow multiple parentheses inside each other?

There are 6 different ways to suit a one pair hand in Omaha.  The widest range is of course the double suited version and the tightest is of course the rainbow version.  I’m trying to think of the easiest minimal way to cover them all in a User code.  Let's just use KKQ as an example.  The double suited is all of them down to KKQ2, the single suited to the K only goes down to KKQ5 and the single suited not to the K only goes down to KKQ7, the triple suited only goes down to KKQ9 and the rainbow only down to KKQT.  Embedding parentheses is risky for the potential to make a mistake, but I want to know if PPL allows it.  For example,

When ((hand = KKQ and DoubleSuited) or ((hand = KKsuitedQ6 or hand = KKsuitedQ5) and suitsinhand = 3) or ((hand = KKQsuited8 or hand = KKQsuited7) and suitsinhand = 3)) or hand = KKQ9suited or hand = KKQJ or hand = KKQT) UserEP


I'm doing every hand for a range, so this is actually my desired method, but any suggestions for cleaner or easier code is welcome.
Logged
Egor
Forum Admin
Extreme Botter
*****

Karma: 371
Posts: 34342



WWW
« Reply #1 on: October 28, 2021, 06:29:58 PM »

It allows it but I personally don't trust it. Let me know how it goes. Very confusing to follow.
Logged

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

Karma: -2
Posts: 25


« Reply #2 on: October 28, 2021, 06:33:46 PM »

When (

(hand = KKQ and DoubleSuited) or

((hand = KKsuitedQ6 or hand = KKsuitedQ5) and suitsinhand = 3) or

((hand = KKQsuited8 or hand = KKQsuited7) and suitsinhand = 3)) or

hand = KKQ9suited or

hand = KKQJ or hand = KKQT

) UserEP

this is probably easier to read going from doubled suited, single suited high, single suited low, triple suited and then rainbow.
Logged
tapthatace
Botter
***

Karma: 7
Posts: 202


« Reply #3 on: October 29, 2021, 12:27:51 AM »

another way to handle this is create PreFlop Categories for the hand like this:

When others
  When SuitsInHand = 2 and Not(DoubleSuited or SuitsInHand = 3) user_HandTripleSuited
  When DoubleSuited user_HandDoubleSuited
  When Not(DoubleSuited or user_HandTripleSuited) and (SuitsInHand = 2 or SuitsInHand = 3) user_HandSingleSuited
  When SuitsInHand = 4 user_HandRainbow
  When SuitsInHand = 1 user_HandMonotone

You can then use those above in your when statements and actions looking at the hand

Something else that I do is the following --- I am creating my ranges before doing any actions preflop so my code would look like this:
When DoubleSuited and (Hand = Kc6cKQ or Hand = Kd6dKQ or Hand = Kh6hKQ or Hand = Ks6sKQ) user_Range_RFI_EP
When Hand = K6KQ and SuitsInHand = 4 user_Range_RFI_EP
When Not(DoubleSuited) and SuitsInHand = 3 and (Hand = KcQcK6 or Hand = KdQdK6 or Hand = KhQhK6 or Hand = KsQsK6) user_Range_RFI_EP



Something to think about is when you say hand = KKQsuited8 that means that the Q can be suited with any 3 of those cards in that hand or in this exact case it can be suited with the King or 8 (since you have a pair of kings in the hand)

If you are looking for someone to work with on a PLO bot message me
Logged
Tripper89
zeros
*

Karma: -2
Posts: 25


« Reply #4 on: October 29, 2021, 06:51:16 AM »

Yeah I have User code like you listed.  I have some super long User code and was trying to get creative as a way to condense everything.  But some times less isn't better.

The KKQsuited8, as well as the KKQ9suited, as well as others end up doing multiple duty since they can be true on several occasions.

I need to come up with a game plan, I might just keep my many insanely long User code groups that I have.  Once I get my bearings I'll message you.
Logged
Tripper89
zeros
*

Karma: -2
Posts: 25


« Reply #5 on: October 29, 2021, 09:33:41 AM »

Something else that I do is the following --- I am creating my ranges before doing any actions preflop so my code would look like this:
When DoubleSuited and (Hand = Kc6cKQ or Hand = Kd6dKQ or Hand = Kh6hKQ or Hand = Ks6sKQ) user_Range_RFI_EP
When Hand = K6KQ and SuitsInHand = 4 user_Range_RFI_EP
When Not(DoubleSuited) and SuitsInHand = 3 and (Hand = KcQcK6 or Hand = KdQdK6 or Hand = KhQhK6 or Hand = KsQsK6) user_Range_RFI_EP

Egor, or another person for confirmation...

Tapthatace, wrote some interesting stuff here.  But what tapthatace did here having several different non-combined When statements putting stuff into the same user_Range_RFI_EP is something I've avoided because I was worried the second When statement would erase out the first When hands and then the third When would over-write the second and so on.  Is this good code where you are able to use multiple different non-combined When statements putting more and more hands into the same user range?


Below is a example from the PPL User Guide

when (hand = AA or hand = KK or hand = QQ or hand = JJ or hand = TT) userlist1
when userlist1 or (hand = 99 or hand = 88) userlist2
when userlist2 or (hand = 77 or hand = AK) userlist3

I've been doing some type of modified version of this where I have User1 do an or with more hands and create and user2 and so on.  This is probably a safer way to do it. But if I could just keep adding stuffing into the same user range that might be eaiser code than a user1 user2 user3 etc.



« Last Edit: October 29, 2021, 10:02:56 AM by Tripper89 » Logged
tapthatace
Botter
***

Karma: 7
Posts: 202


« Reply #6 on: October 29, 2021, 04:03:18 PM »

Egor, or another person for confirmation...

Tapthatace, wrote some interesting stuff here.  But what tapthatace did here having several different non-combined When statements putting stuff into the same user_Range_RFI_EP is something I've avoided because I was worried the second When statement would erase out the first When hands and then the third When would over-write the second and so on.  Is this good code where you are able to use multiple different non-combined When statements putting more and more hands into the same user range?


In the case that I shared it is perfectly okay -- I am only looking to see if user_Range_RFI_EP has been set to true -- I don't care what the actual hand is for any preflop code.  I am then using it like this in my preflop logic: 

When Calls = 0 and Raises = 0
  When others user_RFI_PreFlop_Block
  When user_EP and user_Range_RFI_EP RaiseMax Force


You are saying it will overwrite but that really doesn't make sense - Nothing is being overwritten you are just setting a flag (user_Range_RFI_EP) to true when it is true you can then do x y z !!  If you were looking to use that exact hand for something later then I might agree.  What I did with my multiple lines (some are as many as 5,000 lines) is reducing error in the code by not putting this all in one section -- for my EP_RFI range it is made up of 17% starting hands --- it is much cleaner to read when you keep everything concise on one line (IMO)
Logged
Tripper89
zeros
*

Karma: -2
Posts: 25


« Reply #7 on: October 29, 2021, 07:00:39 PM »

Yes, there is more than one way to get to the finish line.  I went a slightly different approach with no pair double suited being userEP1, then userEP1 or no pair single suited being userEP2, etc.  I'm with you on having thousands of lines of code.  And I'm also with you on trying to be obsessive that it is as simple as possible.  
Logged
Pages: [1] Print 
Shanky Technologies Poker Bot Support Forum  |  General Category  |  PPL Support (Moderator: sngbot)  |  Topic: PPL allow embedded parentheses?
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!