31 lines
1.3 KiB
Dart
31 lines
1.3 KiB
Dart
import 'dart:math';
|
|
|
|
class DictationDifficultyRepository {
|
|
static final Random _random = Random();
|
|
|
|
static final Map<int, List<String>> _levels = {
|
|
// Lv 1: 2글자 쉬운 단어
|
|
1: ['구두', '바지', '모자', '가수', '나비', '포도', '사과', '우유', '지도', '치마'],
|
|
|
|
// Lv 2: 3~4글자 단어
|
|
2: ['어머니', '아버지', '강아지', '고양이', '자전거', '자동차', '비행기', '소나무', '운동화'],
|
|
|
|
// Lv 3: 받침이 있는 단어 / 복합어
|
|
3: ['학교', '병원', '경찰서', '도서관', '선생님', '냉장고', '세탁기', '박물관', '운동장'],
|
|
|
|
// Lv 4: 짧은 문장 (인사/일상)
|
|
4: ['반갑습니다', '안녕하세요', '감사합니다', '밥 먹었어요', '사랑합니다', '건강하세요'],
|
|
|
|
// Lv 5: 띄어쓰기가 있는 문장
|
|
5: ['날씨가 좋아요', '비가 옵니다', '꽃이 피었습니다', '문을 닫으세요', '손을 씻으세요'],
|
|
|
|
// Lv 6: 속담 (기억력 훈련)
|
|
6: ['가는 말이 고와야 오는 말이 곱다', '티끌 모아 태산', '소 잃고 외양간 고친다', '발 없는 말이 천 리 간다'],
|
|
};
|
|
|
|
static String getProblem(int level) {
|
|
int targetLevel = level.clamp(1, 6);
|
|
final list = _levels[targetLevel]!;
|
|
return list[_random.nextInt(list.length)];
|
|
}
|
|
} |