Related link:
http://bokekage-reports.spoonybards.net/tools/skratchy/
McMasters has already said that the cards are not truly random: although the number of cards the game can use is very large, it is finite. It's also well-mixed, so that as long as you look over the entire set, a given spot is no more likely to contain any particular picture than any other spot.
But because there's a finite number of cards, the above only holds as long as you're looking over the entire set of cards. The more you can narrow down your search, the more the randomness breaks down, and patterns start to emerge. The skratchy database is designed to aid in this: tell it about a card, and it will show you all the cards it knows about that match the one you gave it. This is the most basic use of the database: tell it what you know about the database, find the patterns to make your next scratch, and then repeat the process with what you know now.
Now, as to how to use the database:
A card is just a string of at least 25 characters: one per spot (you can also use whitespace, which doesn't count as spots but can make the query a lot easier to read). The spots go left to right, then top to bottom. There are nine characters you can use:
- B: Billy
- L: Letter of Marque
- P: Potion
- S: Sho' Nuff Elixir (for historical reasons you can also use R here)
- 1: Bonus x1
- 2: Bonus x2
- 3: Bonus x3
- -: (a spot that has not yet been scratched)
That's it. Most people put spaces after spots 6, 14, and 20, which are the breaks between rows on the card.
Now, to really put it to use, what you'd do is the following:
- Buy a SuperTicket. Note the spots your bloodline reveals.
- Enter what you know about the card -currently just the bloodline-spots- into the database. You'll probably want to click the 'Show card pictures' button to convert the text into images: the reason I start as text is that doing so makes the page show much, much faster.
- Find what you want in the cards, and find where it appears most often. If it shows up in one particular spot in all of the cards, then it is very likely to be there on your card too (it's possible that you might have a card the DB hasn't seen, but this gets less likely as we get more cards).
- Scratch a spot on your card, other than your bloodline-spot (if you plan to scratch that spot at all, always scratch it last).
- If you scratched something other than your bloodline, then you now know more about the card than before. Put this into the database to narrow your search even further.
- Repeat the process until you've scratched off the whole card.
But the database is getting too large to be practical without additional tools. Finding patterns is not all that difficult when the database can show you 10 or even 20 cards. But when it shows you hundreds, that's too much. I need to write new tools on top of it, which can analyze search results and get back to the user on what they need to know.
The hell of it is, the tools are already written, but as Python scripts: I used them to build the database initially, and they've been good for my own testing and analysis, but if I port them to JavaScript and add them to the DB page itself, they would be useful for a lot more people. What I need is the time to do that, and I haven't been lucky in getting that recently.