Thanks for your reply Robert. The algorithm you suggest is actually much closer to what my programs have done in the past.
The problem I found is that you don't want to remove the card all together once the user has got it right a certain number of consecutive times, because their ability to get it right 5 times in a row, in the space of, say, 2 minutes doesn't necessarily (in my experience) mean they'll get it right in a an hour, or in a day, or in a week, or in a month. One possible response to this is to have multiple decks, each roughly representing a longer time period than the previous one and moving a card from one deck to the next once the user has correctly answered after a certain number of times. But then this is just a discrete version of what I was hoping to achieve with the notion of an estimated time to forget. James > So, the algorithm: We have a queue (of length 3) and a deck. > If the answer is wrong, set the counter for that item to 0 & put it back > at the end of the queue. If it's right, increase the counter. If the > counter is at 5, remove the card completely. Otherwise, insert it into > the deck, select a random card from the deck, and put it at the > end of the queue. . . ================================================================= Instructions for joining and leaving this list, remarks about the problem of INAPPROPRIATE MESSAGES, and archives are available at: . http://jse.stat.ncsu.edu/ . =================================================================