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)