没有项目描述
memorize_flashcards的Python项目详细描述
memory flashcards提供了一个python模块和管理shell脚本 以问答卡片的形式管理个人“课程”。 这有助于记忆任何类型的东西-为历史考试而学习 学习新的语言。 管理工具提供数据库的内容,将“卡”文件放在 放置、散列等,而python模块提供“策略”- 每张卡片显示的频率。
一课
一堂课就是一次“练习”—例如,看30多张抽认卡, 就在睡觉前。 python模块“policy.py”负责为 一个教训。
一堂课通常应该包括用户使用的卡片 最不了解这是政策的职责-决定 在共产党的课上要打牌。
它使用卡片major和minor来完成这项工作。 大量的卡片可以告诉你下一堂课的进度 卡是。例如,值为“1”的专业意味着下一课应该 包含此卡,而主值'8'表示您将练习 这张卡有8节课。 卡片的minor值表示用户对卡片的了解程度。 值为1表示“不太好”,值为256表示“这张卡” 是用户大脑中的硬编码。 使用这两个值,策略应构成下一课。
表演中的一节课是展示一张牌,展示它的背面 (在按下某个键或等待一段时间后),然后 询问用户是否知道该卡。 然后根据策略更新主要/次要值
经典政策
假设我们有一张主要/次要值为1/2的卡所以在 委员会的教训卡将显示。 如果用户知道该卡,经典策略会将其推回到 遥远的教训有多远小调+大调,意思是3这意味着 知道一张卡片的时间会加倍直到再次看到它。未成年人 数字也增加了一倍,因此新的主/庄园值是3/4。 如果用户不知道该卡,则策略将显示 再上一课,展示的自由度应该很高, 所以在这种情况下,主/次数是2/1。
可以通过继承“policy”并实现 获取卡()并更新卡()。
例如,经典的策略更新卡功能看起来有些问题 例如:
def update_card(self, card, value): if (card in self.cards) or (card in self.used_pile): raise Exception("Illegal state- card must be out of pile and used pile when updated") #print "D: card lesson before: {}".format(card.lesson) if (value == True): card.lesson += card.period card.period *= 2 else: # value == False card.lesson += 1 card.period = 1 self.used_pile.append(card) #print "D: card lesson after: {}".format(card.lesson)
客户
客户端是一个脚本,它使用策略模块和管理工具 实际展示卡片并使用策略和管理工具 更新数据库。
目前已经实现了一个非常基本的方法,即 记住Konsole客户端的抽认卡。