Balance? In a basic word game?
It may at fist glance seem to be a moot point, balance in a learning game? This isn’t some complex RPG or FPS Shooter, however, when I first began using the program a few really annoying things began happening and I set about to find a solution.
When the game first started for me and there were 10, 20, 50 words, everything was fine. Quizzes were comprised of groups of 10 words with 3 questions per word (kana->kanji, kanji->kana, English->kanji)1 and the time between questions was based on rank (let’s say roughly 1 day, 3 days, 5 days, 7 days, 10 days, and 14 days for each rank). This method worked well for a small number of words but as the queue grew to greater than 300 words it became apparent that this method presented a few flaws.
- It made no distinction between words you knew and didn’t know.
- It created a situation where several days could go by with few/no words, then a large spike of words.
I found myself frustrated with the process as I would have nothing to do for days, then I’d be inundated by words (mostly on the weekends). This made the program not very fun and seem quite awful.
A more elegant algorithm.
I’ve implemented a simple solution which solves these issues and creates a more enjoyable learning experience. The new method is each rank has a base time interval, this is the lowest amount of time between presentation of words if the question is answered correctly. Then, each rank also has a maximum variance interval which indicates a maximum amount of time to be added onto the base interval. A random interval between the base and maximum variance interval is selected for the amount of time until the next quiz. This random interval is then multiplied by the ratio of correct vs incorrect questions, providing less time between questions the user has had difficulty with in the past. Also, if the question was answered incorrectly during the previous quiz, the amount of time is halved, thus assisting the user in learning questions they have difficulty remembering.
Current next quiz time table
Here is the current table of time between questions:
|Rank||Base Time||Max Variance|
|十両||18 hours||4 hours|
|前頭||48 hours||12 hours|
|小結||3 days||18 hours|
|関脇||7 days||2 days|
|大関||14 days||5 days|
|横綱||28 days||14 days|
It took a little bit of experimenting to find a sweet spot for these times. The current solution also contains a little rudimentary machine learning to make challenging words for the user appear more often, but not so often as to fatigue the user. I’ve found that this configuration provides a good balance between repetition and preventing burn out due to over exposure.
- This applies for questions with a kanji and kana, for kana only words, there would only be 2 questions per quiz. [return]