5

I already provided an answer to this question How can I do better than chance in UNO?, but after looking into the question more deeply, I don't like the wording of the question for a couple of reasons:

  • most important strategies for improving odds of winning: doesn't define how to measure important. (I.e. is it more important to implement a strategy that is more difficult to implement (color & rank counting), but has a greater effect on your win percentage (color counting). How should we rank strategies, only considering there effectiveness on winning?

I would like to know how effective a strategy is on win percentages. I thought my own answer to the question gave some correct advice on how to increase your win percentage in UNO, but I couldn't quantify it without experimental verification. This is what lead me to Stephen Davies UNO Simulator.

A Java simulator program (provided) can simulate thousands of consecutive Uno! games in seconds. It implements all the rules of the standard game, including the scoring, with only one thing missing: pluggable strategy methods for each player. Students have two weeks to formulate their strategies and write their code for choosing a (legal) card to play from a hand, and choosing which color to "call" if they play a wild.

I decided to actually try implementing some different strategies too determine how effective they were. I tried call random color, color I have, color I have most of, color with most points, and play strategies with similar algorithms versus each other and the dominant strategy included in the software package rbrown4 (a card counting algorithm, with some card weighting based upon hand sizes. I found that there was little difference between the card counter and just playing a random playable card, and calling a color you actually have (less than 5% in a 3-player game), but I also discovered some issues with the simulator.

  • Random isn't random enough: A proper pseudo random number generator (PRNG) needs a period larger than the possible game states.

  • The rules weren't implemented correctly: The simulator tracks points won per hand, not wins from acquiring 500 points. Draw cards played when going out don't add those drawn cards to your point total when you go out. Starting card effects are not allowed. Draw-4 wilds are allowed to be played when you have a playable color (and no "caught"/bluff is implemented)

  • The game state doesn't track the most useful variables: I would like to track cards played by a player, how close they are to 500 points, what colors/ranks they have drawn on, etc. but the current implementation leaves much of this information inaccessible.

I have corrected most of these issues and rerun the simulator with improved results. Previously when playing random cards and calling random colors would only result in a difference of about 10% points versus a card counter/most color strategy, the win percentage increased by 30% in a 3-player game (versus 2 random players).

Should I ask a new question focused exclusively on how effective each strategy is? (or should I edit the original question to clarify what is meant by most important strategy?)

If I ask a new question, how should I word it? - I am interested to see how effective strategies like always change a called color are, but can that strategy be singled out in a vacuum? (I.e. should its effectiveness on win percentage be measured against a random player, or a most color player, etc.) Should I wait until I correct the errors in the UNO simulation and publish the results to SourceForge (or somewhere else)

1
  • Good question. This is so in-depth that it's almost out of the scope of B&CG: most of us aren't programmers and won't be able to defend our answers statistically in a rigorous way. The last question you asked about computation in a board game didn't collect any real answers, so I would expect a similar question that demanded simulation to similarly collect no real answers except your own. Sep 17, 2013 at 23:31

1 Answer 1

6

You should ask a new question: you want some extremely specific and rigorously-evaluated strategies, rather than the existing question's request for "help me lose less." The existence of a give-me-some-good-tips question does not mean that a give-me-an-objectively-best-strategy question is a duplicate.

The title of the new question should focus on how precise you want things to be, something along the lines of "What specific strategy has the highest win-rate in Uno?" The question body should highlight exactly the points you're mentioning here: you want the strategy to be objectively evaluated, not just "I lost less often doing this." Unfortunately, since we're (largely) not programmers here, you probably won't get many bites.

Update: Some wording that you might find useful:

Title: What specific strategies have the highest win-rate in Uno?

Question body: In light of (link to the "give me tips" Uno question), I'm trying to work out the best possible specific Uno strategy. Someone has build an Uno simulator (link), and I want to create several different strategies and have them play against each other to see what works best. (Optional: add your bit about fixing the simulator. Keep it short, because that's not the important part about this question.)

So: what is your Uno strategy? Be specific: I'm going to write a program to execute your strategy, and have it play against other strategies.

Things to think about in your answer:

  • What card do you play next? Do you try to get down to one color or number, or always keep as much variety as possible in your hand? If you have a pair of 0's and a 9, do you play the 9 to reduce your point count, or play a 0 to keep up some variety in your hand? Do you play Skip, Reverse, Draw Two, Wild, and Wild Draw Four early or late, or does it depend on how many cards other people have?
  • What do you do if you must change color, but you have multiple options on what to change to? Do you think about what opponents might have, or just go for what's most advantageous to you?
  • Does your strategy change if someone is very close to winning the entire match, i.e. somebody's close to 500 points? How close to 500 do they have to be for you to change how you play?
  • Does your strategy change if you're losing the hand? How do you decide if you're losing? (Do you start ditching the high-point cards like Wild and Draw Two?)
  • Do you ever challenge someone's use of Wild Draw Four, by demanding they show that they don't have any cards of the current color? When do you challenge?

Don't worry about answering all of those questions, but if you change your play depending on circumstances around the table, please mention it in your answer. Being precise helps me program a strategy that matches what you do, but if some of it is a "gut feel," just give me a general idea of what helps you make of your mind.

Don't worry about having the absolute best answer. I will program your strategy, and edit your answer to show its actual win-rate against other strategies. Verifying your win-rate is my job, so you don't need to conclusively prove that you're the best: just write up the strategy you like, and I'll prove whether it works.

3
  • 1
    I was hoping to somehow encourage people to post strategies that I could convert to their equivalent java functions. I wonder how I could encourage that so non programmers can contribute.
    – user1873
    Sep 18, 2013 at 1:20
  • 4
    Come out and say it! Since answerers don't have to rigorously prove their theories, they might be more willing to answer. Then, once you've made the code, edit their answers to note the win-rate. Sep 18, 2013 at 1:29
  • I appreciate the edit with examples, and will likely borrow the majority of it. I will get to asking the question soon (ping me if I haven't for being lazy), but was working out exactly how many iterations of the simulation I have to run to be confident of the results). I haven't quite figured that out yet, but it is looking like I need to run 50k hands (about 1 min) at least 200 times to get the spread (2.5th-97.5th percentile) of how accurate the win rates are. 1mil takes 90min.
    – user1873
    Oct 8, 2013 at 1:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .