Skip to content

Commit

Permalink
fix: offset, readme
Browse files Browse the repository at this point in the history
  • Loading branch information
root39293 committed Nov 26, 2024
1 parent 23a8072 commit 3da95d9
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
## 주요 기능

### 1. 맞춤형 비트맵 추천
- 사용자 PP 기반 난이도 조정 (0.7 ~ 1.0 배율)
- 사용자 PP 기반 난이도 조정
- 난이도별 차등 추천 (Easy, Normal, Hard)
- 비트맵 필터링 (최소 플레이 수, 길이, 최근 등록 기준)
- 비트맵 필터링 (차후 구현)

### 2. 일일 도전과제
- 난이도별 3개 비트맵 제공
Expand All @@ -23,15 +23,15 @@
- 난이도별 클리어 현황

### 4. 데모 모드 (/demo)
로그인 없이 서비스의 기능을 미리볼 수 있는 데모 페이지를 제공합니다:
로그인 없이 서비스의 기능을 미리볼 수 있는 데모 페이지를 제공합니다
- 도전과제 시스템 미리보기
- 대시보드 및 통계 화면 체험

## 추천 알고리즘
## 비트맵 추천 알고리즘

## 난이도 계산 수식

난이도 범위는 다음 공식을 사용하여 계산됩니다:
난이도 범위는 다음 선형 공식을 사용하여 계산됩니다

### 기본 공식
```
Expand All @@ -43,7 +43,7 @@ difficulty_range = stable_top_play_stars + offset ± margin
#### 난이도별 offset
- 쉬움(EASY): -1.0
- 보통(NORMAL): -0.25
- 어려움(HARD): +0.6
- 어려움(HARD): +0.45

#### margin
모든 난이도에 대해 ±0.25의 margin이 적용됩니다
Expand All @@ -70,12 +70,13 @@ difficulty_range = stable_top_play_stars + 0.6 ± 0.25

- Easy: 2.75★~3.25★
- Normal: 3.5★~4.0★
- Hard: 4.35~4.85
- Hard: 4.05~4.55


### 현재 구현 (1000pp 이상)
1. 유저의 상위 기록 분석
- 상위 10개 기록 중 정확도 95% 이상인 상위 3개 기록 선별
- 95% 이상 정확도 기준: 초중급자의 안정적 실력 측정을 위한 최소 기준
- 모드별 난이도 보정 적용
* DT/NC: 원래 난이도 × 1.4 (예: 4.5★ → 6.3★)
* HR: 원래 난이도 × 1.05 (예: 4.5★ → 4.7★)
Expand All @@ -85,7 +86,7 @@ difficulty_range = stable_top_play_stars + 0.6 ± 0.25
예시) 기준값이 6★인 경우:
- EASY: 5.0★ ~ 5.5★ (기준값 -1.0 ±0.25)
- NORMAL: 5.75★ ~ 6.25★ (기준값 -0.25 ±0.25)
- HARD: 6.35★ ~ 6.85★ (기준값 +0.6 ±0.25)
- HARD: 6.2★ ~ 6.7★ (기준값 +0.45 ±0.25)

3. 맵 필터링
- 계산된 난이도 범위 내의 ranked 비트맵 검색
Expand All @@ -111,7 +112,11 @@ difficulty_range = stable_top_play_stars + 0.6 ± 0.25

## TODO

### 초보자 추천 알고리즘 개선 계획
### API 테스트기능 개발
1. 테스트용 JWT 토큰 생성 코드 추가
2. 테스트용 맵 추천 엔드포인트 추가

### 1000pp 미만 알고리즘 개선 계획
1. S랭크 기반 실력 판단
- S랭크 보유 여부로 초보자 판단
- 현재 도전 중인 난이도 기준으로 추천
Expand All @@ -120,11 +125,6 @@ difficulty_range = stable_top_play_stars + 0.6 ± 0.25
* NORMAL: 2.5★ ~ 2.7★ (현재 도전 중인 난이도)
* HARD: 2.7★ ~ 2.9★ (약간 더 어려운 도전용)

2. 피드백 기반 난이도 조정
- 클리어 성공/실패에 따른 난이도 동적 조정
- 정확도와 랭크를 고려한 단계적 상승
- 패턴별 성공률 분석으로 개인화된 추천

## 기술 스택

### Frontend
Expand Down
2 changes: 1 addition & 1 deletion src/lib/server/osu-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ function calculateDifficultyRange(pp: number, stableTopPlayStars: number, diffic
const offsets = {
EASY: -1.0,
NORMAL: -0.25,
HARD: 0.6
HARD: 0.45
};
const margin = 0.25;

Expand Down

0 comments on commit 3da95d9

Please sign in to comment.