Flutter未知功能插件dolphinsr_dart的探索使用
Flutter未知功能插件dolphinsr_dart的探索使用
DolphinSR_Dart 简介
DolphinSR_Dart 是基于Yodaiken编写的JavaScript版本的DolphinSR算法的一个移植版本。它实现了间隔重复(Spaced Repetition),特别是采用了Anki对SM2算法的修改,包括:
- 新卡片学习模式
- 忘记卡片后的重新学习模式
- 将自评等级从6个减少到4个
- 将迟到因素纳入卡片调度
- Anki默认配置选项
与Anki的算法相比,DolphinSR_Dart在以下方面有所不同:
- 改进了对无序添加复习的支持(例如由于网络延迟)
- 内部数据结构完全不同(DolphinSR_Dart主要采用函数式编程风格编写,以简化测试和调试,不依赖于存储计算的数据或任何SQL数据库)
- 只有一种类型的卡片
安装
要使用此包,请在pubspec.yaml
文件中添加如下依赖:
dependencies:
dolphinsr_dart: latest_version
快速开始
下面是一个简单的例子来演示如何使用DolphinSR_Dart库。
示例代码
import 'package:dolphinsr_dart/dolphinsr_dart.dart';
void main() {
final reviews = <Review>[];
final dolphin = DolphinSR();
// 添加主条目(Master Entries)
dolphin.addMasters(<Master>[
Master(
id: '1',
fields: <String>['คน', 'person'],
combinations: <Combination>[
Combination(front: <int>[0], back: <int>[1]),
Combination(front: <int>[1], back: <int>[0]),
],
),
Master(
id: '2',
fields: <String>['คบ', 'To date'],
combinations: <Combination>[
Combination(front: <int>[0], back: <int>[1]),
Combination(front: <int>[1], back: <int>[0]),
],
)
]);
// 添加复习记录
dolphin.addReviews(reviews);
// 获取统计信息
var stats = dolphin.summary(); // => { due: 0, later: 0, learning: 2, overdue: 0 }
printStats(stats);
// 获取下一张卡片进行复习
var card = dolphin.nextCard()!;
printCard(card);
// 创建一个复习记录,并添加到复习列表中
var review = Review(
master: card.master,
combination: card.combination,
ts: DateTime.now(),
rating: Rating.Hard);
dolphin.addReviews(<Review>[review]);
// 继续获取并处理更多的卡片...
for (var i = 0; i < 5; i++) {
card = dolphin.nextCard()!;
printCard(card);
review = Review(
master: card.master,
combination: card.combination,
ts: DateTime.now(),
rating: i % 2 == 0 ? Rating.Easy : Rating.Hard);
dolphin.addReviews(<Review>[review]);
stats = dolphin.summary();
printStats(stats);
}
}
// 辅助函数用于打印卡片信息
void printCard(DRCard card) {
print(
'${card.master}-${card.back}-${card.front}-${card.combination!.back}-${card.combination!.front} - ${card.lastReviewed} - ${card.dueDate}');
}
// 辅助函数用于打印统计数据
void printStats(Stats stats) {
print('${stats.due}-${stats.later}-${stats.learning}-${stats.overdue}');
}
这段代码展示了如何创建一个DolphinSR实例,添加一些主条目(如单词及其翻译),然后通过循环模拟用户复习这些条目的过程。每次复习后,程序会根据用户的评分更新卡片的状态,并输出当前的学习进度统计信息。
请注意,实际应用中您可能需要更复杂的功能,比如持久化存储复习记录、支持更多种类型的卡片等。此外,还可以根据需要调整复习难度的评估逻辑,以更好地适应具体的应用场景。
更多关于Flutter未知功能插件dolphinsr_dart的探索使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复