...
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import '../models/cognitive_type.dart';
|
||||
|
||||
class AssessmentService {
|
||||
// 간단한 점수 산출 (Yes = 1점, 부족함 표시)
|
||||
Map<CognitiveArea, int> calculateWeaknesses(Map<String, bool> answers) {
|
||||
Map<CognitiveArea, int> scoreMap = {
|
||||
CognitiveArea.memory: 0,
|
||||
CognitiveArea.calculation: 0,
|
||||
CognitiveArea.attention: 0,
|
||||
CognitiveArea.perception: 0,
|
||||
};
|
||||
|
||||
// 실제로는 질문 ID와 영역을 매핑해서 처리
|
||||
// 예시 로직:
|
||||
if (answers['q_memory_1'] == true) scoreMap[CognitiveArea.memory] = (scoreMap[CognitiveArea.memory] ?? 0) + 1;
|
||||
// ...
|
||||
return scoreMap;
|
||||
}
|
||||
|
||||
// 점수에 기반하여 오늘의 추천 게임 리스트 생성
|
||||
List<BrainGameType> generateDailyCourse(Map<CognitiveArea, int> weaknesses) {
|
||||
List<BrainGameType> course = [];
|
||||
|
||||
// 1. 가장 취약한 영역의 게임 1개 (난이도 하)
|
||||
CognitiveArea weakest = weaknesses.entries.reduce((a, b) => a.value > b.value ? a : b).key;
|
||||
course.add(BrainGameType.values.firstWhere((g) => g.area == weakest));
|
||||
|
||||
// 2. 랜덤하게 다른 영역 게임 2개 섞기 (균형 잡힌 훈련)
|
||||
List<BrainGameType> others = BrainGameType.values.where((g) => g.area != weakest).toList()..shuffle();
|
||||
course.addAll(others.take(2));
|
||||
|
||||
return course;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user