const CASES = [ { id: 1, industry: '헬스케어', industryEn: 'Healthcare', 안정성: 85, 수익_가능성: 82, 자금_효율성: 80, 사업_계획_완성도: 88, 사회적_가치: 84, type: 'baseline', note: '명확 선발' }, { id: 2, industry: '물류', industryEn: 'Logistics', 안정성: 18, 수익_가능성: 22, 자금_효율성: 15, 사업_계획_완성도: 20, 사회적_가치: 25, type: 'baseline', note: '명확 탈락' }, { id: 3, industry: '교육', industryEn: 'Education', 안정성: 68, 수익_가능성: 72, 자금_효율성: 65, 사업_계획_완성도: 70, 사회적_가치: 66, type: 'baseline', note: '무난 중상' }, { id: 4, industry: '제조', industryEn: 'Manufacturing', 안정성: 35, 수익_가능성: 38, 자금_효율성: 42, 사업_계획_완성도: 30, 사회적_가치: 35, type: 'baseline', note: '무난 중하' }, { id: 5, industry: '핀테크', industryEn: 'Fintech', 안정성: 5, 수익_가능성: 68, 자금_효율성: 72, 사업_계획_완성도: 70, 사회적_가치: 65, type: 'spike', spike_var: '안정성', spike_dir: 'down' }, { id: 6, industry: '에너지', industryEn: 'Energy', 안정성: 70, 수익_가능성: 97, 자금_효율성: 68, 사업_계획_완성도: 65, 사회적_가치: 72, type: 'spike', spike_var: '수익 가능성', spike_dir: 'up' }, { id: 7, industry: 'IT', industryEn: 'IT', 안정성: 65, 수익_가능성: 70, 자금_효율성: 4, 사업_계획_완성도: 68, 사회적_가치: 72, type: 'spike', spike_var: '자금 효율성', spike_dir: 'down' }, { id: 8, industry: '바이오', industryEn: 'Biotech', 안정성: 68, 수익_가능성: 65, 자금_효율성: 70, 사업_계획_완성도: 96, 사회적_가치: 66, type: 'spike', spike_var: '사업 계획 완성도', spike_dir: 'up' }, { id: 9, industry: '미디어', industryEn: 'Media', 안정성: 72, 수익_가능성: 68, 자금_효율성: 65, 사업_계획_완성도: 70, 사회적_가치: 6, type: 'spike', spike_var: '사회적 가치', spike_dir: 'down' }, { id: 10, industry: '소셜', industryEn: 'Social', 안정성: 95, 수익_가능성: 95, 자금_효율성: 15, 사업_계획_완성도: 20, 사회적_가치: 25, type: 'conflict', note: '수익·안정성 최고 vs 나머지 최저' }, { id: 11, industry: '복지', industryEn: 'Welfare', 안정성: 20, 수익_가능성: 18, 자금_효율성: 22, 사업_계획_완성도: 25, 사회적_가치: 95, type: 'conflict', note: '사회가치만 최고 나머지 최저' }, { id: 12, industry: '환경', industryEn: 'Environment', 안정성: 88, 수익_가능성: 85, 자금_효율성: 90, 사업_계획_완성도: 92, 사회적_가치: 12, type: 'conflict', note: '사회가치만 최저 나머지 모두 최고' }, { id: 13, industry: '문화', industryEn: 'Culture', 안정성: 15, 수익_가능성: 92, 자금_효율성: 18, 사업_계획_완성도: 20, 사회적_가치: 88, type: 'conflict', note: '수익·사회가치 높음 나머지 낮음' }, { id: 14, industry: '농업', industryEn: 'Agriculture', 안정성: 90, 수익_가능성: 22, 자금_효율성: 88, 사업_계획_완성도: 85, 사회적_가치: 82, type: 'conflict', note: '수익만 최저 나머지 모두 높음' }, { id: 15, industry: '패션', industryEn: 'Fashion', 안정성: 48, 수익_가능성: 52, 자금_효율성: 50, 사업_계획_완성도: 47, 사회적_가치: 53, type: 'conflict', note: '모든 변인 50점대 경계선' }, ]; const TEAM_LETTERS = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O']; const VARS = ['안정성', '수익_가능성', '자금_효율성', '사업_계획_완성도', '사회적_가치']; function shuffleCases() { const indices = CASES.map((_, i) => i); // Fisher-Yates shuffle for (let i = indices.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [indices[i], indices[j]] = [indices[j], indices[i]]; } return indices.map((origIdx, newIdx) => ({ ...CASES[origIdx], teamLetter: TEAM_LETTERS[newIdx], presentedOrder: newIdx + 1, })); } function getScoreLevel(score) { if (score < 35) return 'low'; if (score < 65) return 'mid'; return 'high'; }