scottybweyy
scottybweyy
Joined: Jul 7, 2012
  • Threads: 1
  • Posts: 7
July 7th, 2012 at 1:40:56 PM permalink
Beyond understanding card counting basics, my blackjack advantage play knowledge is minimal. For various reasons I want to create a blackjack program which will tell me the perfect play based on the remaining deck composition, and up cards on the table. I would want the result in approximately 5 seconds. I do not want to hear arguments about how doing this above card counting only provides a minimal advantage.

At first I thought Casino Verite would have a tool to do that but I haven't found out how. If that is the case would someone please walkthrough the steps to configure?

If not, any other available software on the market that does this?

Also, I would be willing to explore creating my own program. Pretend I have infinite computing resources. I would be willing to use hadoop clusters and/or CUDA GPU programming to increase resources to meet the program requirement of perfect play in 5 seconds. For reality, let's assume "perfect" may mean a 5 sigma accuracy (99.99999%)

Are there any examples of algorithms (simulation or combinatorial analysis) online or in books which would put me on on the right track to write my own software?

Thank you!
bigfoot66
bigfoot66
Joined: Feb 5, 2010
  • Threads: 52
  • Posts: 1570
July 7th, 2012 at 1:51:29 PM permalink
Way above my head...
Vote for Nobody 2016!
Fiziks
Fiziks
Joined: Jul 2, 2012
  • Threads: 1
  • Posts: 17
July 7th, 2012 at 7:58:13 PM permalink
What language will you be writing this in? Honestly it shouldn't be that hard as I've written a desktop application that keeps count and suggests moves using BS. You won't need a supercomputer to do it and it might take maybe 60-80 hours to program (without a fancy GUI)

Do you have programming experience? Need some more info to better help you out.
A correct answer is not always the solution to the problem.
MonkeyMonkey
MonkeyMonkey
Joined: May 1, 2012
  • Threads: 13
  • Posts: 770
July 8th, 2012 at 3:35:25 AM permalink
I don't think the five second bit is the tough part. Imagine if you put a BS chart into a 2 dimensional array, the correct play would appear to be found instantly, and even if the chart were an order of magnitude or two larger it would still easily breeze in under 5 seconds.

So, if you could find the info you need* or an algorithm to generate it, you could put it in a lookup table and away you go.

* The problem as I see it is determining what the proper play really is for every possible combination of deck make ups and rule sets. How many trials of each combination will give you the accuracy you require?

You may have a need for those infinite computing resources before you ever get started.

Compared to divining the answer to the real question here writing your program will be trivial.
heather
heather
Joined: Jun 12, 2011
  • Threads: 8
  • Posts: 437
July 8th, 2012 at 4:30:44 AM permalink
Somebody on here about a year ago posted about wanting to have Casino Verite use a different counting system. They ended up emailing the developer, who was very helpful. Might be worth a shot.

Here's the thread, which might be useful since it links another piece of modifiable Blackjack software.
weaselman
weaselman
Joined: Jul 11, 2010
  • Threads: 20
  • Posts: 2349
July 8th, 2012 at 12:40:32 PM permalink
You don't need fancy clusters and five sigma accuracy to do this. There is no computational complexity here. A program to calculate what you want could run on a mobile phone. The only problem is it's going to take you way more than five seconds to input the deck composition. No technical complexity either, I can't imagine a first year CS student worth the money he spent on tuition not being able to write it in a few hours.
"When two people always agree one of them is unnecessary"
MonkeyMonkey
MonkeyMonkey
Joined: May 1, 2012
  • Threads: 13
  • Posts: 770
July 8th, 2012 at 3:29:50 PM permalink
Quote: weaselman

You don't need fancy clusters and five sigma accuracy to do this. There is no computational complexity here. A program to calculate what you want could run on a mobile phone. The only problem is it's going to take you way more than five seconds to input the deck composition. No technical complexity either, I can't imagine a first year CS student worth the money he spent on tuition not being able to write it in a few hours.



Assuming a large enough screen to comfortable hold the UI, you could have a picture of all 52 cards on the screen (in suited rows or columns) and just touch the card you want to input. Or, for two touches just 2-A and the suits. Then the counting and deck composition could be handled for you.

But I still stand by that it would be trivial to program the app, it's knowing what the correct play is considering number or decks, rule set, and remaining cards.
ThatDonGuy
ThatDonGuy
Joined: Jun 22, 2011
  • Threads: 87
  • Posts: 3738
July 8th, 2012 at 4:32:39 PM permalink
Here's the problem: suppose you have a 13 and the dealer is showing a 4.
"Perfect play" has to compute the following:
You draw an ace, and then it has to determine the "perfect play" based on you having 14 and the dealer showing 4 (and there is one fewer ace in the deck).
You draw a 2, and then it has to determine the perfect play based on you having 15 and the dealer showing 4 (and there is one fewer 2 in the deck).
And so on, with 3 through 7. (Obviously, with an 8, you stand on 21, and with a 9 or higher, you bust.)
Now, when determining what the perfect play is for 14 with dealer showing a 4, you have to repeat this process - what if your second draw is also an ace, what if it is a 2, and so on.

Assuming you have the computing power to do that in five seconds, it's reasonably simple; you need an array to represent the queue of cards you draw. It appears that the method is similar to the one I for one use to determine what the probabilities are for the house getting 17, 18, 19, 20, 21, or busting from a full deck based on up card, the number of decks, and whether the house hits or stands on a soft 17.

On the other hand, if you want to know what the "perfect strategy" is based solely on what your initial two cards and the dealer's up card are (as well as what cards remain in the deck), the real problem isn't figuring it out, but using the information; you need to know what to do for each possible card drawn, then, for when you hit, each possible card drawn after that, and so on.
scottybweyy
scottybweyy
Joined: Jul 7, 2012
  • Threads: 1
  • Posts: 7
July 8th, 2012 at 5:17:57 PM permalink
Quote: Fiziks

What language will you be writing this in? Honestly it shouldn't be that hard as I've written a desktop application that keeps count and suggests moves using BS. You won't need a supercomputer to do it and it might take maybe 60-80 hours to program (without a fancy GUI)

Do you have programming experience? Need some more info to better help you out.



I'm partial to C++. I have experience - computer engineering major and computer science minor. I'm five years our of school and programming isn't something I do everyday, but I've kept fresh over the years.
scottybweyy
scottybweyy
Joined: Jul 7, 2012
  • Threads: 1
  • Posts: 7
July 8th, 2012 at 5:22:04 PM permalink
Quote: MonkeyMonkey

I don't think the five second bit is the tough part. Imagine if you put a BS chart into a 2 dimensional array, the correct play would appear to be found instantly, and even if the chart were an order of magnitude or two larger it would still easily breeze in under 5 seconds.

So, if you could find the info you need* or an algorithm to generate it, you could put it in a lookup table and away you go.

* The problem as I see it is determining what the proper play really is for every possible combination of deck make ups and rule sets. How many trials of each combination will give you the accuracy you require?

You may have a need for those infinite computing resources before you ever get started.

Compared to divining the answer to the real question here writing your program will be trivial.



Yes the algorithm is the key part I need help with. Combinatorial analysis looks like the right approach. I don't believe I can run a simulation each time new information is received quickly enough. Also a look up table for all rule types would be infeasible.

  • Jump to: