Skip to content

greedy-team/javascript-greedy-roulette

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

νƒμš•μ˜ λ£°λ › κ²Œμž„

πŸ” 진행방식

  • λ―Έμ…˜μ€ κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­, ν”„λ‘œκ·Έλž˜λ° μš”κ΅¬μ‚¬ν•­, 과제 μ§„ν–‰ μš”κ΅¬μ‚¬ν•­ μ„Έ κ°€μ§€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
  • μ„Έ 개의 μš”κ΅¬μ‚¬ν•­μ„ λ§Œμ‘±ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•œλ‹€. 특히 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° 전에 κΈ°λŠ₯ λͺ©λ‘μ„ λ§Œλ“€κ³ , κΈ°λŠ₯ λ‹¨μœ„λ‘œ 컀밋 ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰ν•œλ‹€.

🎰 λ£°λ › κ·œμΉ™

룰렛은 총 40칸으둜 κ΅¬μ„±λ˜μ–΄ 있으며, 각 칸은 μ•„λž˜ 색상 쀑 ν•˜λ‚˜λ‘œ 이루어져 μžˆλ‹€.

색상 μΉΈ 수 ν™•λ₯  λ°°λ‹Ή
YELLOW 21 52.5% x1
GREEN 10 25% x3
BLUE 6 15% x5
PURPLE 2 5% x10
RED 1 2.5% x20
  • 각 칸은 λ™μΌν•œ ν™•λ₯ λ‘œ μ„ νƒλœλ‹€. (40μΉΈ 쀑 1μΉΈ = 2.5%)
  • λ°°λ‹Ή 적용 방식은 μ•„λž˜ κ·œμΉ™μ„ λ”°λ₯Έλ‹€.
    • λ² νŒ… μ‹œ λ² νŒ… κΈˆμ•‘μ€ μžκΈˆμ—μ„œ μ°¨κ°λœλ‹€.
    • λ² νŒ… 성곡: λ² νŒ… κΈˆμ•‘ + (λ² νŒ… κΈˆμ•‘ Γ— λ°°λ‹Ή)을 νšλ“ν•œλ‹€. (μ›κΈˆ 회수 + λ°°λ‹ΉκΈˆ)
    • λ² νŒ… μ‹€νŒ¨: λ² νŒ… κΈˆμ•‘μ„ μžƒκ³  λΌμš΄λ“œκ°€ μ’…λ£Œλœλ‹€.

πŸ“Œ λ°°λ‹Ή 계산 μ˜ˆμ‹œ

λ² νŒ… 색상 λ² νŒ… κΈˆμ•‘ κ²°κ³Ό 계산 νšλ“ κΈˆμ•‘
YELLOW(x1) 500원 성곡 500 + (500 Γ— 1) 1,000원
GREEN(x3) 1,000원 성곡 1,000 + (1,000 Γ— 3) 4,000원
RED(x20) 100원 성곡 100 + (100 Γ— 20) 2,100원
BLUE(x5) 500원 μ‹€νŒ¨ - 0원

🎯 κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­

ν™•λ₯  기반 λ£°λ › λ² νŒ… κ²Œμž„μ΄λ‹€.

  • κ²Œμž„ μ‹œμž‘ μ‹œ ν”Œλ ˆμ΄μ–΄λŠ” 초기 자금 10,000원을 κ°€μ§„λ‹€.
  • ν”Œλ ˆμ΄μ–΄λŠ” λ§€ λΌμš΄λ“œλ§ˆλ‹€ λ² νŒ…μ„ μ§„ν–‰ν•˜κ±°λ‚˜ κ²Œμž„μ„ 쀑단할 수 μžˆλ‹€.
  • λ² νŒ…μ„ μ§„ν–‰ν•˜λ©΄ 색상과 λ² νŒ… κΈˆμ•‘μ„ μž…λ ₯ν•œλ‹€.
  • 룰렛을 돌리면 κ²°κ³ΌλŠ” μ¦‰μ‹œ λ‚˜μ˜€μ§€ μ•ŠμœΌλ©°, 2초(2000ms) κ°€ μ§€λ‚œ ν›„ κ²°κ³Όκ°€ 좜λ ₯λœλ‹€.
  • λ£°λ › κ²°κ³Όκ°€ ν”Œλ ˆμ΄μ–΄κ°€ μ„ νƒν•œ 색상과 κ°™μœΌλ©΄ λ² νŒ… 성곡, λ‹€λ₯΄λ©΄ λ² νŒ… μ‹€νŒ¨μ΄λ‹€.
  • 자금이 0원이 되면 κ²Œμž„μ΄ μ’…λ£Œλœλ‹€.
  • κ²Œμž„μ΄ μ’…λ£Œλ˜λ©΄ μ΅œμ’… 자금과 ν”Œλ ˆμ΄ν•œ λΌμš΄λ“œ 수λ₯Ό 좜λ ₯ν•œλ‹€.
  • μ‚¬μš©μžκ°€ 잘λͺ»λœ 값을 μž…λ ₯ν•œ 경우 alert으둜 μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό 보여주고, λ‹€μ‹œ μž…λ ₯ν•  수 있게 ν•œλ‹€.

πŸ’» μ‹€ν–‰ κ²°κ³Ό μ˜ˆμ‹œ

μ‹€ν–‰ κ²°κ³Ό


βœ… ν”„λ‘œκ·Έλž˜λ° μš”κ΅¬μ‚¬ν•­

μž…λ ₯(μ‚¬μš©μž μ•‘μ…˜)

  • 색상 선택: μ•„λž˜ 쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•œλ‹€.
    • 🟑 YELLOW, 🟒 GREEN, πŸ”΅ BLUE, 🟣 PURPLE, πŸ”΄ RED
  • λ² νŒ… κΈˆμ•‘ μž…λ ₯: 1원 μ΄μƒμ˜ μ •μˆ˜λ₯Ό μž…λ ₯ν•œλ‹€.
  • λ² νŒ… μ‹€ν–‰ λ²„νŠΌμ„ ν΄λ¦­ν•œλ‹€.
  • κ²Œμž„ 쀑단 λ²„νŠΌμ„ ν΄λ¦­ν•œλ‹€.
  • λ‹€μ‹œ μ‹œμž‘ λ²„νŠΌμ„ ν΄λ¦­ν•œλ‹€.

좜λ ₯(UI 반영)

1) 초기 ν™”λ©΄(νŽ˜μ΄μ§€ μ§„μž… μ‹œ)

  • ν˜„μž¬ μžκΈˆμ€ 10,000이 ν‘œμ‹œλœλ‹€.
  • ν˜„μž¬ λΌμš΄λ“œλŠ” 0이 ν‘œμ‹œλœλ‹€.
  • κ²°κ³Ό μ˜μ—­μ€ 보이지 μ•ŠλŠ”λ‹€.
  • λ‹€μ‹œ μ‹œμž‘ λ²„νŠΌμ€ 보이지 μ•ŠλŠ”λ‹€.
  • λ² νŒ… λ²„νŠΌκ³Ό 쀑단 λ²„νŠΌμ€ ν™œμ„±ν™” μƒνƒœλ‹€.

2) λ² νŒ… μ‹œμž‘ 직후(λ² νŒ… λ²„νŠΌ 클릭 직후)

  • ν˜„μž¬ μžκΈˆμ€ λ² νŒ… κΈˆμ•‘λ§ŒνΌ μ¦‰μ‹œ μ°¨κ°λ˜μ–΄ ν‘œμ‹œλœλ‹€.
  • λ² νŒ… λ²„νŠΌκ³Ό 쀑단 λ²„νŠΌμ€ λΉ„ν™œμ„±ν™”λœλ‹€.
  • κ²°κ³Ό μ˜μ—­μ΄ ν‘œμ‹œλœλ‹€.
  • κ²°κ³Ό μ˜μ—­μ— μ•„λž˜ 문ꡬ가 ν‘œμ‹œλœλ‹€.
룰렛을 λŒλ¦¬λŠ” 쀑...

3) λ² νŒ… κ²°κ³Ό(2초 ν›„)

  • ν˜„μž¬ λΌμš΄λ“œκ°€ 1 μ¦κ°€ν•˜μ—¬ ν‘œμ‹œλœλ‹€.
  • κ²°κ³Ό μ˜μ—­μ— μ•„λž˜ 정보가 ν‘œμ‹œλœλ‹€.
λ£°λ › κ²°κ³Ό: {색상}
  • κ²°κ³Ό 색상은 μ‹œκ°μ μœΌλ‘œ κ΅¬λΆ„λ˜μ–΄ ν‘œμ‹œλœλ‹€.
  • λ² νŒ… λ²„νŠΌκ³Ό 쀑단 λ²„νŠΌμ€ λ‹€μ‹œ ν™œμ„±ν™”λœλ‹€.

4) λ² νŒ… 성곡 μ‹œ(κ²°κ³Ό ν™”λ©΄)

  • 성곡 λ©”μ‹œμ§€κ°€ ν‘œμ‹œλœλ‹€.
λ² νŒ… 성곡! +{νšλ“ κΈˆμ•‘}원

5) λ² νŒ… μ‹€νŒ¨ μ‹œ(κ²°κ³Ό ν™”λ©΄)

  • μ‹€νŒ¨ λ©”μ‹œμ§€κ°€ ν‘œμ‹œλœλ‹€.
λ² νŒ… μ‹€νŒ¨! -{손싀 κΈˆμ•‘}원

6) κ²Œμž„ μ’…λ£Œ

  • μ•„λž˜ 쑰건 쀑 ν•˜λ‚˜λ₯Ό λ§Œμ‘±ν•˜λ©΄ κ²Œμž„μ΄ μ’…λ£Œλœλ‹€.
    • μ‚¬μš©μžκ°€ 쀑단 λ²„νŠΌμ„ ν΄λ¦­ν•œ 경우
    • 자금이 0원 μ΄ν•˜κ°€ 된 경우 (νŒŒμ‚°)
      • λ£°λ › 결과와 ν•¨κ»˜ κ²°κ³Ό μ˜μ—­μ— κ²Œμž„μ΄ κ³§ μ’…λ£Œλ©λ‹ˆλ‹€. νŒŒμ‚° μ•ˆλ‚΄ λ©”μ‹œμ§€κ°€ ν‘œμ‹œλœλ‹€.
      • 2초 뒀에 κ²Œμž„ μ’…λ£Œ ν™”λ©΄μœΌλ‘œ μ „ν™˜λœλ‹€.
  • μ’…λ£Œ μ‹œ κ²°κ³Ό μ˜μ—­μ— μ΅œμ’… κ²°κ³Όκ°€ ν‘œμ‹œλœλ‹€.
κ²Œμž„ μ’…λ£Œ
μ΅œμ’… 자금: {κΈˆμ•‘}원
ν”Œλ ˆμ΄ν•œ λΌμš΄λ“œ: {λΌμš΄λ“œ 수}
  • λ² νŒ… μž…λ ₯ μ˜μ—­(색상 선택, κΈˆμ•‘ μž…λ ₯, λ²„νŠΌ)은 μˆ¨κΉ€ μ²˜λ¦¬λœλ‹€.
  • λ‹€μ‹œ μ‹œμž‘ λ²„νŠΌμ΄ ν‘œμ‹œλœλ‹€.

7) μ˜ˆμ™Έ 좜λ ₯(μœ νš¨ν•˜μ§€ μ•Šμ€ μž…λ ₯)

  • μœ νš¨ν•˜μ§€ μ•Šμ€ μž…λ ₯이 λ“€μ–΄μ˜€λ©΄ alert둜 μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•œλ‹€.
  • μ—λŸ¬ λ°œμƒ μ‹œ μ•„λž˜ μƒνƒœλŠ” λ³€κ²½λ˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
    • ν˜„μž¬ 자금
    • ν˜„μž¬ λΌμš΄λ“œ
    • λ²„νŠΌ ν™œμ„±/λΉ„ν™œμ„± μƒνƒœ

곡톡 μš”κ΅¬μ‚¬ν•­

  • varλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. const, let만 μ‚¬μš©ν•œλ‹€.
  • μ „μ—­ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ™ΈλΆ€ 라이브러리λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ , 순수 Vanilla JS둜만 κ΅¬ν˜„ν•œλ‹€.
  • Airbnb μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ μ»¨λ²€μ…˜μ„ μ§€ν‚€λ©΄μ„œ ν”„λ‘œκ·Έλž˜λ° ν•œλ‹€.
  • indent(인덴트, λ“€μ—¬μ“°κΈ°) depthλ₯Ό 2κ°€ λ„˜μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν•œλ‹€.
    • 예λ₯Ό λ“€μ–΄ whileλ¬Έ μ•ˆμ— if문이 있으면 λ“€μ—¬μ“°κΈ°λŠ” 2이닀.
    • 힌트: indent depthλ₯Ό μ€„μ΄λŠ” 쒋은 방법은 ν•¨μˆ˜(λ˜λŠ” λ©”μ†Œλ“œ)λ₯Ό λΆ„λ¦¬ν•˜λŠ” 것이닀.
  • ν•¨μˆ˜(λ˜λŠ” λ©”μ†Œλ“œ)κ°€ ν•œ κ°€μ§€ 일만 ν•˜λ„λ‘ μ΅œλŒ€ν•œ μž‘κ²Œ λ§Œλ“€μ–΄λΌ.
  • import 문을 μ΄μš©ν•΄ 슀크립트λ₯Ό λͺ¨λ“ˆν™”ν•˜κ³  뢈러올 수 있게 λ§Œλ“ λ‹€.
  • ν•¨μˆ˜(λ˜λŠ” λ©”μ†Œλ“œ)의 길이가 15라인을 λ„˜μ–΄κ°€μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν•œλ‹€.

μŠ€νƒ€μΌλ§ μš”κ΅¬μ‚¬ν•­(선택)

  • μŠ€νƒ€μΌλ§μ€ 자유둭게 κ΅¬ν˜„ν•œλ‹€.
  • 제곡된 HTML ꡬ쑰와 id/classλŠ” λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • λΉ„ν™œμ„±ν™”λœ λ²„νŠΌμ€ μ‹œκ°μ μœΌλ‘œ κ΅¬λΆ„λ˜μ–΄μ•Ό ν•œλ‹€.
  • λ² νŒ… 성곡/μ‹€νŒ¨ κ²°κ³ΌλŠ” μ‹œκ°μ μœΌλ‘œ κ΅¬λΆ„λ˜μ–΄μ•Ό ν•œλ‹€.

πŸ“ 과제 μ§„ν–‰ μš”κ΅¬μ‚¬ν•­

  • λ―Έμ…˜ μ €μž₯μ†Œλ₯Ό Fork/Cloneν•΄ μ‹œμž‘ν•œλ‹€.
  • κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° 전에 docs/README.md νŒŒμΌμ— κ΅¬ν˜„ν•  κΈ°λŠ₯ λͺ©λ‘μ„ 정리해 μΆ”κ°€ν•œλ‹€.
  • Git의 컀밋 λ‹¨μœ„λŠ” μ•ž λ‹¨κ³„μ—μ„œ README.md νŒŒμΌμ— μ •λ¦¬ν•œ κΈ°λŠ₯ λͺ©λ‘ λ‹¨μœ„λ‘œ μΆ”κ°€ν•œλ‹€.

βœ‰οΈ λ―Έμ…˜ 제좜 방법

  • λ―Έμ…˜ κ΅¬ν˜„μ„ μ™„λ£Œν•œ ν›„ GitHub을 톡해 μ œμΆœν•œλ‹€.
  • λ―Έμ…˜μ„ μ œμΆœν•  λ•Œμ—λŠ” docs의 markdown νŒŒμΌμ— κΈ°λŠ₯ λͺ©λ‘μ΄ 적어져 μžˆμ–΄μ•Όν•œλ‹€.
  • ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•΄μ•Όλ§Œ 제좜이 κ°€λŠ₯ν•˜λ‹€.

βœ”οΈ ν…ŒμŠ€νŠΈ μ‹€ν–‰ κ°€μ΄λ“œ

  • ν…ŒμŠ€νŠΈ 싀행에 ν•„μš”ν•œ νŒ¨ν‚€μ§€ μ„€μΉ˜λ₯Ό μœ„ν•΄ Node.js 버전 20 이상이 ν•„μš”ν•˜λ‹€.
  • λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•΄ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•œλ‹€.
npm install
  • μ„€μΉ˜κ°€ μ™„λ£Œλ˜μ—ˆλ‹€λ©΄, λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•΄ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•œλ‹€.
npm run test
  • λͺ¨λ“  ν…ŒμŠ€νŠΈκ°€ passν•œλ‹€λ©΄ 성곡!

πŸ”— μ°Έκ³  링크

About

🎰 그리디 javascript λ£°λ › λ―Έμ…˜

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors