Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handling GGPoker bet and muck. #91

Merged
merged 7 commits into from
Dec 5, 2023
Merged

Conversation

RuijieZ
Copy link

@RuijieZ RuijieZ commented Dec 2, 2023

@ItalyToast
Copy link
Owner

I'm considering if
P1: BET_MUCKS
P2: CALLS
P1: BET_MUCKS_FOLD

should be rewritten to
P1: BET
P2: CALLS
P1: FOLD (this is not allowed unless you BET_MUCK)
P1: MUCKS (optinal since muck is considered default)

since it's very nice to have these things normalized

Will you see in the handhistory if a opponent BET_MUCKS and win the hand? If so the BET_MUCK should be a new hand action since there is no way to figure out the bet muck happened otherwise. On the other hand if you dont see a winning BET_MUCK you can figure out that the player BET_MUCKS (and lost) if the player BETS -> gets CALLED -> FOLDS. The downside with this approach is that it requires a lot more logic from the library consumer to identify a BET_MUCK.

Maybe we just add a bool field on the HandAction like IsAndMuck (Similar to IsAllIn)? If it comes more flags later we can make a bit field out of them and then they will only take up 32bits of space.

I'll have to think about this. If you have any ideas you can post them here.

@RuijieZ
Copy link
Author

RuijieZ commented Dec 2, 2023

Will you see in the handhistory if a opponent BET_MUCKS and win the hand?

This is the only hand where I saw bet_mucks(out of 150k sample). My guess is that either nobody is using this feature or when people win the hand with this feature it is labelled as a normal BET.

I think both are likely to be true, especially the latter. Because if you saw in your handhistory that your opponent is Bet_muck, then you know you are getting bluffed. It is information you should not have. For the house, they probably don't want to reveal these info because it discourages people to use this feature.

I'm considering if
P1: BET_MUCKS
P2: CALLS
P1: BET_MUCKS_FOLD

I am leaning more towards keeping the hand history as it is and let library user decides what to do with these hands. In other words, keeping BET_MUCKS and BET_MUCK_FOLD. For library users it is way easier to spot a new action than having to parse the action list and wonder if the hand history itself is wrong.

If it comes more flags later we can make a bit field out of them and then they will only take up 32bits of space.

From ggpoker side, I did not find any other new actions. So I don' think you need worry too much about having too many new actions, at least for now.

Maybe we just add a bool field on the HandAction like IsAndMuck (Similar to IsAllIn)?

I prefer not to do this majorly because this is a very niche thing, where isAllIn is a very common thing. I think adding isMuck will confuse library users because it is applied to all HandActions. For example, if they just want to create a "CHECK" action and code editor is suggesting that they can add an "IsMuck" parameter, they will be very confused on what it is. I was confused about the potNumber in the beginning and then realized what it is. So I think smoothing the learning curve on the library benefits more than supporting a very niche action.

nice to have these things normalized

If we choose to not use BET_MUCK, I prefer the following:

P1: BET
P2: CALLS
P1: MUCKS.

I think this creates less confusion to the library users.

Let me know what you think.

@ItalyToast
Copy link
Owner

So I think smoothing the learning curve on the library benefits more than supporting a very niche action.

I agree, the feature is used in 1/150k hand in 1/10 parsers. So making it a seperate action doesnt seem right. The HandActions still effectively describe whats happening.

I think we go with:

P1: BET
P2: CALLS
P1: MUCKS.

I think both are likely to be true, especially the latter. Because if you saw in your handhistory that your opponent is Bet_muck, then you know you are getting bluffed. It is information you should not have. For the house, they probably don't want to reveal these info because it discourages people to use this feature.

That was my suspision, if it was giving away information then you as library user most likely want this information. And that would warrant a new HandActionType

@RuijieZ
Copy link
Author

RuijieZ commented Dec 3, 2023

Update the PR.

  • Change the actions to BET, CALL, MUCK.
  • Relocate the test to the action test folder

@ItalyToast ItalyToast merged commit e01ce46 into ItalyToast:master Dec 5, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants