2025-12-12 13:27:49 +09:00

35 lines
1.3 KiB
Dart

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;
}
}