ν•™μŠ΅ λͺ©ν‘œ

μ»¬λ ‰μ…˜ νƒ€μž…μ„ μ„ μ–Έν•˜κ³  μ›ν•˜λŠ” κ°’μœΌλ‘œ μ±„μš°κ³ , λ‹€λ₯Έ κ°’μœΌλ‘œ 좜λ ₯ν•  수 μžˆλ‹€.

사전지식

  • μ—†μŒ.

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

3κ°€μ§€ 발판 μœ ν˜•μ„ κ°€μ§€λŠ” 사닀리 κ²Œμž„μ„ κ΅¬ν˜„ν•˜λ €κ³  ν•œλ‹€.

  • λ‹€μŒ μš”κ΅¬μ‚¬ν•­μ„ λ§Œμ‘±ν•˜λ„λ‘ 사닀리 데이터 ꡬ쑰λ₯Ό κ²°μ •ν•œλ‹€.

  • 사닀리 데이터λ₯Ό λͺ¨λ‘ λΉˆμƒνƒœλ‘œ μ΄ˆκΈ°ν™” ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•œλ‹€.Β reset()

  • 사닀리 데이터 ꡬ쑰에 λ°œνŒμ„ λžœλ€ν•˜κ²Œ μƒμ„±ν•˜λŠ” ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•œλ‹€.Β randomFill()

    • 사닀리 데이터에 발판 좜λ ₯용 λ¬Έμžμ—΄μ„ 직접 λ„£μ§€ μ•ŠλŠ”λ‹€.
  • 사닀리 데이터 ꡬ쑰λ₯Ό λΆ„μ„ν•˜λŠ” ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•œλ‹€.Β analyze()

  • 사닀리 데이터 ꡬ쑰λ₯Ό λ¬Έμžμ—΄λ‘œ 좜λ ₯ν•˜λŠ” ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•œλ‹€.Β display()

  • 사닀리 발판 μ’…λ₯˜

    • ---Β 1자 발판 : μ’Œβ†’μš°, μš°β†’μ’Œ μ–‘μͺ½μ—μ„œ λͺ¨λ‘ 이동 κ°€λŠ₯ν•˜λ‹€.

    • \-\Β μš°ν•˜ν–₯ 발판 : μ’Œβ†’μš°μ—μ„œλ§Œ 이동 κ°€λŠ₯ν•˜λ‹€.

    • /-/Β μ’Œν•˜ν–₯ 발판 : μš°β†’μ’Œμ—μ„œλ§Œ 이동 κ°€λŠ₯ν•˜λ‹€.

  • μ°Έκ°€μžλŠ” 5λͺ…μœΌλ‘œ, 사닀리 λ†’μ΄λŠ” 5칸으둜 κ³ μ •ν•œλ‹€.

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

μ œμ•½μ‚¬ν•­
  • ν΄λž˜μŠ€λ‚˜ 객체둜 κ΅¬ν˜„ν•˜μ§€ μ•Šκ³  μ•„λž˜ ν•¨μˆ˜λ“€λ§Œ κ΅¬ν˜„ν•΄λ„ λ¬΄λ°©ν•˜λ‹€.

  • λͺ¨λ“  ν•¨μˆ˜λ₯Ό main ν•˜λ‚˜μ˜ νŒŒμΌμ— μž‘μ„±ν•œλ‹€.

    • μžλ°”μŠ€ν¬λ¦½νŠΈ main.js , μŠ€μœ„ν”„νŠΈ main.swift, μ½”ν‹€λ¦° main.kt
reset() ν•¨μˆ˜
  • 사닀리 데이터 ꡬ쑰λ₯Ό μ΄ˆκΈ°ν™”ν•œλ‹€.

  • λͺ¨λ‘ λΉ„μ–΄μžˆλŠ” μƒνƒœλ‘œ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

randomFill() ν•¨μˆ˜
  • λžœλ€ν•˜κ²Œ 3κ°€μ§€ 발판 μ’…λ₯˜λ₯Ό μ„ νƒν•΄μ„œ 사닀리 데이터 ꡬ쑰λ₯Ό μ±„μš΄λ‹€.

  • 총 발판 λͺ‡ 개λ₯Ό μ±„μšΈμ§€λ„ λžœλ€ν•˜κ²Œ κ²°μ •ν•œλ‹€.

analyze() ν•¨μˆ˜
  • 사닀리 데이터 ꡬ쑰λ₯Ό λΆ„μ„ν•œ κ²°κ³Όλ₯Ό λ¦¬ν„΄ν•œλ‹€.

    • μ’Œμš°μ— 1자 발판이 μ—°μ†μœΌλ‘œ λ‚˜μ˜€λ©΄ false

    • μ’ŒμΈ‘μ— μš°ν•˜ν–₯ 발판 + μš°μΈ‘μ— μ’Œν•˜ν–₯ 발판이 μ—°μ†μœΌλ‘œ λ‚˜μ˜€λ©΄ false

    • μ’ŒμΈ‘μ— μ’Œν•˜ν–₯ 발판 + μš°μΈ‘μ— μš°ν•˜ν–₯ 발판이 μ—°μ†μœΌλ‘œ λ‚˜μ˜€λ©΄ false

    • μœ„μ— ν•΄λ‹Ήν•˜λŠ” κ²½μš°κ°€ μ—†μœΌλ©΄ trueλ₯Ό return

display() ν•¨μˆ˜
  • 사닀리 데이터 ꡬ쑰λ₯Ό λΆ„μ„ν•΄μ„œ λ¬Έμžμ—΄λ‘œ λ¦¬ν„΄ν•œλ‹€.

  • 사닀리 μ„Έλ‘œλŠ”Β |Β νŒŒμ΄ν”„ 문자둜 좜λ ₯ν•œλ‹€.

  • 발판 μ’…λ₯˜λ³„λ‘œ 좜λ ₯ν•˜λŠ” ν˜•μ‹μ€ λ‹€μŒκ³Ό κ°™λ‹€.

    • ---Β 1자 발판

    • \-\Β μš°ν•˜ν–₯ 발판

    • /-/Β μ’Œν•˜ν–₯ 발판

    • 빈 발판

  • ν•œ 쀄 λ§ˆμ§€λ§‰ λμ—λŠ” μ€„λ°”κΏˆ 문자 \n을 λΆ™μ—¬μ„œ 좜λ ₯ν•œλ‹€.

  • 좜λ ₯은 analyze() λ™μž‘κ³Ό 상관없이 λ™μž‘ν•œλ‹€.

μ˜ˆμƒκ²°κ³Ό 및 λ™μž‘μ˜ˆμ‹œ

μ˜ˆμ‹œ 1. reset() + display() ν•œ 경우

|   |   |   |   |\n
|   |   |   |   |\n
|   |   |   |   |\n
|   |   |   |   |\n
|   |   |   |   |\n

μ˜ˆμ‹œ 2. reset() + randomFill() + display() ν•œ 경우

|   |   |---|   |\n
|\-\|---|   |/-/|\n
|   |/-/|---|   |\n
|---|   |\-\|---|\n
|   |\-\|---|   |\n

μ˜ˆμ‹œ 3. reset() + randomFill() + analyze() false + display() ν•œ 경우

|   |   |---|   |\n
|\-\|---|---|   |\n
|   |/-/|---|   |\n
|---|   |\-\|---|\n
|   |\-\|---|   |\n

λ˜λŠ”

|   |   |---|   |\n
|/-/|---|   |   |\n
|   |/-/|\-\|   |\n
|---|   |\-\|---|\n
|   |\-\|---|   |\n