-
Notifications
You must be signed in to change notification settings - Fork 43
Home
Dominiate is a strategy simulator for the card game Dominion. More information is at: http://rspeer.github.com/dominiate
- README and installation instructions
- Forum thread with ongoing development and discussion
- Decisions -- lists all the types of decisions an AI can be asked to make.
- Literate programming documentation:
- Tutorials (not written yet)
These are issues that at least Rob has encountered. You might, too. So it's useful to list them here.
How do I track down a bug at the command line? It just says the error is in "Object" and the line numbers are all wrong.
The .coffee files are being temporarily compiled to .js, and the line numbers are right for the .js files. That, of course, doesn't help much when you can't see it. You can do this, though:
coffee -c buggyFile.coffee
Now you have buggyFile.js, and you can look at it and find the problem on the given line number. However, node.js will start importing this .js file in preference to the real .coffee file! So after this, you need to delete the file.
Am I going insane? No matter what I do to the code, nothing is changing.
You have a .js file sitting around, possibly because of the above, and it's being loaded instead of the .coffee file.
Why doesn't this "if" statement ever succeed?
CoffeeScript's syntax for conditionals looks a lot like Python, meaning you might be tempted to write something like: if not card in hand
Unfortunately, CoffeeScript has to stay true to its JavaScript roots, including operator precedence, so it's as if you wrote: if (!card) in hand
(!card)
is false. false
isn't in your hand. So add parentheses whenever you're in doubt: if not (card in hand)
Finishing the cards is one thing, but we should also plan more about:
- Endgame strategy - How can the simulator plan across multiple turns in the endgame to maximize its probability of winning?
- Card values - Can we assign values to cards to indicate that Mountebanks are probably better than Woodcutters regardless of the strategy one plans to follow?
- Custom cards - Can we streamline the card-creation process and make it accessible from the Web, so that people inventing their own cards can easily experiment with them?
- Strategies with parameters - Can we try multiple variants of a strategy and find the best one, such as to find the best time to start buying Duchies?