/** 휘둘러 베기 별 판정(H 스펙 5.4절): ★★★ ≤ par, ★★ ≤ par + 2, 그 밖 ★. 기존 `starsFor`(정확도)는 쓰지 않는다. */ export const SWIPE_TWO_SLACK = 2; export function swipeStars(swipes: number, par: number): 1 | 2 | 3 { if (swipes <= par) return 3; return swipes <= par + SWIPE_TWO_SLACK ? 2 : 1; } /** 다음 별까지 줄여야 할 휘두르기 수. ★★★면 null */ export function nextSwipeGap(swipes: number, par: number): { stars: 2 | 3; need: number } | null { const now = swipeStars(swipes, par); if (now === 3) return null; return now === 2 ? { stars: 3, need: swipes - par } : { stars: 2, need: swipes - (par + SWIPE_TWO_SLACK) }; }