*****Official Texas 42 Discussion Thread******

164,553 Views | 1440 Replies | Last: 5 min ago by Philip J Fry
atnoyes3
How long do you want to ignore this user?
AG
So you say bonuses and penalties based on their tiles; do tiles have fixed bonuses? Or adjusts based on other dominoes in the hand? I usually bid thinking about what count I will lose, or how likely it is, but with a bonus system, it sounds like it might be the opposite? Like adding up how many points the AI expects to win?

Also regarding bidding based on the partners hand, I have all my bots set to aggressive bidding mode, and I feel like my partner overbids me often. Do they like to bid higher when their partner bids? Basically assuming their partner has a good hand? Or is it just a side effect of the aggressive setting?

Also something I'm curious about, when I bid a mark or two, I have never been overbid. I'm curious why the bots seem to get scared off from it.
Philip J Fry
How long do you want to ignore this user?
AG
No, there is some logic to it. Like holding the 46 without the 44 or 65 and 66 gets a major penalty for choosing 4s and 6s as trumps.

Trumps, in general get a bonus. Holding the 55 gets a bonus.

There are some rules written in for the ai setting. For instance, a conservative player most likely will never outbid their partner. An aggressive player doesnt care and I think I wrote it such that it actually gets a small bonus if their partner bids. They are also more prone to bidding 31 instead of 30.

I'm digging into the bidding algorithm now as part of this update. It could use a little upgrading too.

As for the outbidding you on 2 marks, I probably did had code it not to attempt to outbid you there. I can add that to the list. I know I prevented the computer from bidding nello on the iPhone. I just didn't trust my algorithm enough to give it that freedom
Quad Dog
How long do you want to ignore this user?
AG
Don't worry about it, most people shouldn't trust their internal "should I bid nello" algorithm either.
Average Joe
How long do you want to ignore this user?
AG
Quad Dog said:

Don't worry about it, most people shouldn't trust their internal "should I bid nello" algorithm either.
"I only have three offs. I can totally make this work as long as they don't throw..."
atnoyes3
How long do you want to ignore this user?
AG

So how does the computer determine to bid 31 vs 32 vs 35? Are there certain bonus thresholds they have to cross before bidding different amounts points?

And why not trust your low algorithm I figure it would be just as easy to determine a good low hand as a high hand.

Main reason for the questions is the topic came up at work of mathematically determining a bid for every given hand and how the problem might be solved. I figure a Monte Carlo would be the best solution?
Philip J Fry
How long do you want to ignore this user?
AG
Basically two branches to the logic. First branch is a calculation on overall hand strength and what the maximum bid it thinks it can win. So yes, there's a threshold it has to cross. The second branch then makes a decision on what bid it should make. That is, if it thinks it can bid 36 and it's the last player to bid while everyone passed, it will bid 30.

My strategy for bidding was to intentionally make it imperfect. I wanted to try and imitate the human thought process as much as possible. I'm not sure about you guys, but when I'm playing, I don't simulate thousands of hands. I keep track of a few main tiles and base my bid off those.

A few years ago, I tried implementing Monte Carlo's into the mix. What I found was that it required so many iterations to get a good sample size, that it really jacked with the playing speed. I honestly hated how slow it made the game. There was so much number crunching, I remember my phone getting warm and was concerned I would drain everyone's battery quickly. The other issue I had with it was how robotic the decisions were. Felt very botlike to me when I played it. Kind of hard to explain, but my goal wasn't to make an AI that always made the correct mathematical decision possible all the time. Mostly, it was to make an engine that didn't make WTF moves. I somewhat succeeded in that, but there are definitely a handful of logic bugs that resulted in those in the older code.

Leaving the sole decision making process to the Monte Carlo also resulted in some odd moves that would undoubtedly get me lots of hate mail. For instance, if the MCs showed that all tiles were equally bad to play, it could result in playing a 10 count on a trick it couldn't possibly win. Even if mathematically it was just as good of a move as any, So, I dropped it and never implemented it. This next iteration will have it though under select conditions and I think strikes the balance I was looking for.
 
×
subscribe Verify your student status
See Subscription Benefits
Trial only available to users who have never subscribed or participated in a previous trial.