I'm trying to learn Japanese. No specific reason but someone was willing to send emails to me in Japanese and it gave me the excuse to actually try to start learning it. Of course, the problem is that I've failing to learn almost every language I've tried, if it wasn't on the computer. So, I decided to take an idea from Pauker and Slime Forest Adventure and create a modified flash card program. I could have used either one of those, or the multitude of other flash card programs, but I had some specific goals, plus this leads into some other projects I have in mind.
The core library handles cards, with queries and answers. That part is perfectly normal. It also uses a formula to determine when a card should show up. Basically, it keeps asking you the answer, increasing the amount of time each time. The more you answer correctly, the longer it takes for the question to show up. If you answered all the questions, it just remains blank.
If you leave it there, when one of the cards expires, it shows up again (that is the pending line). Also, it can handle units which are selectively enabled or disabled based on something outside the library.
Most of the library is to support some children games that I have in mind. Mainly, you can create a unit of vocab words and it uses that to display the question. I also want to write a Lojban (and technically a Japanese) RPG that basically uses expired cards as the monsters. You type in the word to "attack" and if you miss, you take more damage, if you fail to do it in time, you get a light hit.
The way the library is set up, random monster encounters can easily be handled by this. If none of the cards have expired, then there simply won't be any random encounters. That way, as you master an area, you stop encountering the tokens. On the other hand, it is also set up so you will occasionally be quizzed on mastered cards. If you fail, they start the process again.
Another thing I want to do is make this an applet for Gnome. That way, it will always sit up on the desktop and flash when you have cards to answer. With all of this, it seemed like a fairly useful little library.