์ซ์ ์ผ๊ตฌ ๊ฒ์ ๋ง๋ค๊ธฐ
<ํ์ ๊ตฌํ ๊ธฐ๋ฅ>
<์ ํ ๊ตฌํ ๊ธฐ๋ฅ>
์ด๋ฒ ๊ณผ์ ๋ ํ์ ๊ตฌํ ๊ธฐ๋ฅ Lv1~2
์ ํ ๊ตฌํ ๊ธฐ๋ฅ Lv3~6์ผ๋ก ๋๋์ด์ ธ ์์๋ค.
Lv1์ ๋๋ค ์ซ์ ๋ฝ๊ธฐ
Lv2๋ ๋๋ค์ผ๋ก ๋ฝํ ์ซ์์ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๊ฐ(readLine() ํจ์ ์ฌ์ฉ)์ ๋น๊ตํ์ฌ
์คํธ๋ผ์ดํฌ, ๋ณผ๋ก ํํธ๊ฐ ๋์ค๊ฒ ๋ง๋ค๊ธฐ
Lv3๋ 1~9๊ฐ ์๋ 0๋ ํฌํจํ์ฌ ๋๋ค ์ซ์๋ฅผ ๋ฝ๋๋ก ๋ณ๊ฒฝํ๊ณ ,
๊ฐ์ฅ ์์๋ฆฌ์ 0์ด ์ค์ง ์๋๋ก ๊ตฌํํ๊ธฐ
Lv4๋ ํ๋ก๊ทธ๋จ ์์ ์๋ด ๋ฌธ๊ตฌ๋ฅผ ๋์ฐ๊ณ ,
1๋ฒ(๊ฒ์ ์์)์ ๋๋ ์ ๋ ์์ ๋ง๋ ๊ฒ์์ด ์คํ๋๋๋ก ํ๊ธฐ
Lv5๋ 2๋ฒ(๊ฒ์ ๊ธฐ๋ก ๋ณด๊ธฐ)์ ๋๋ ์ ๋,
์งํํ๋ ๊ฒ์ ๊ธฐ๋ก์ด ๋์ค๋๋ก ๋ง๋ค๊ธฐ
Lv6์ 3๋ฒ(๊ฒ์ ์ข
๋ฃ)์ ๋๋ ์ ๋,
๊ธฐ๋ก์ ์ด๊ธฐํํ๊ณ ๊ฒ์์ด ์ข
๋ฃ๋๋๋ก ๊ตฌํํ๊ธฐ
์ด๋ ๊ฒ 6๋จ๊ณ๋ก ๊ตฌ์ฑ๋์ด ์์๊ณ , ๋ชฉํ๋ ํ์ ๊ตฌํ๊น์ง ์์ฑํ๊ธฐ ์์ง๋ง,
์ฌ๋ฌ ๋์๋ค์ ๋ฐ์ 6๋ ๋ฒจ๊น์ง ๋ชจ๋ ๊ตฌํํ์ฌ ์ ์ถํ๋ค!
์์ง ์ต์ํ์ง ์์์ ์ฝ๋๊ฐ ๊ธธ์ด์ง์๋ก ์ด๋์ ์ด๋ป๊ฒ ๋ผ์ ๊ธฐ๋ฅ์ด ์งํ๋๋์ง
์ค๋๋๋ก ๋ด์ผํ๋ ๋ฌธ์ ๊ฐ ์์ด
๋ถํ์ํ ์ฃผ์๊น์ง๋ ์ฐ์ ๋จ๊ฒจ๊ฐ๋ฉฐ ๋ง๋ค์๋ค.
์ด๋ฒ ๊ณผ์ ๋ฅผ ํตํด ํจ์๋ฅผ ๋ง๋ค๊ณ , ๋ฐ๋ณต๋ฌธ(while๋ฌธ, for๋ฌธ)๊ณผ ์กฐ๊ฑด๋ฌธ(if-else)์ ํ์ฉํ๋ ๊ณผ์ ์์
์ด์ ๋ณด๋ค ์ฝ๋๋ฅผ ์น๋๋ฐ ์ต์ํด์ง ์ ์๋ ์๊ฐ์ด ๋์๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ readLine() ํจ์์ random(in:) ํจ์๋ฅผ ์๋ก ์๊ฒ๋์ด ๋ฐฐ์ธ ์ ์์๋ค.
์๋์ ๊ณผ์ ๋ฅผ ์งํํ๋ ๋ด์ฉ์ ๊ฐ๋จ(?)ํ๊ฒ ๋จ๊ธฐ๋ ค๊ณ ํ๋ค.
(์ด๋ฒ ๊ฒ์๊ธ์์๋ Lv1~2)
์์ธํ ์ฝ๋ ๋ด์ฉ์ github์ ์ฌ๋ ค๋์๋ค.
(https://github.com/yeggrrr)
(Lv3~6, ๊ณผ์ ํด์ค ๊ฐ์๋ฅผ ๋ณด๊ณ ๋๋์ ๊ณผ ๋ด๊ฐ ํ ํ์ด์ ์ด๋ค ์ ์ด ๋ค๋ฅธ์ง,
๋ ๋ค๋ฅธ ํ์ด ๋ฐฉ๋ฒ์ ๋ํด์ ํ์ตํ ๋ด์ฉ๊ณผ ์ ๋ฆฌ๋ 17์ผ(์ผ์์ผ)์ ์
๋ก๋ํ ๊ณํ์ด๋ค.)
Lv1
๋๋ค ์ซ์๋ฅผ ๋ฝ์์ ๋, ๊ฐ ์๋ฆฌ์ ์ซ์๊ฐ ์ค๋ณต๋์ง ์๋๋ก
๋๋ค ์ซ์๋ฅผ ๋ด์ ๋ณ์๋ฅผ ๋ง๋ค ๋, Set์ ์ฌ์ฉํ๋ค.
3์๋ฆฌ ์ซ์๊ฐ ๋ชจ๋ ๋ฝํ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ด ๋์์ผํด์ while๋ฌธ์ ์ฌ์ฉํด์คฌ๊ณ ,
Lv1์์์ ์ซ์ ๋ฒ์๋ 1์์ 9๊น์ง์๋ค.
(Lv3์์ ๋ฒ์๊ฐ 0์์ 9๊น์ง๋ก ๋ณ๊ฒฝ๋จ.)
๊ทธ๋ฆฌ๊ณ ๋์ค์ ๊ฐ ์๋ฆฌ ์ซ์๋ฅผ ๋น๊ตํด์ strike์ ball์ ์์๋ด๊ธฐ ์ํด์
๋ฝํ ๋๋ค ์ซ์๋ฅผ Array๋ก ๊ฐ์ธ Int ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์คฌ๋ค.
Lv2
๋๋ค ์ซ์(=์ ๋ต)๊ณผ ๋น๊ตํ ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ ๋ฐ์์ผ ํ๊ธฐ ๋๋ฌธ์ readLine() ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ต์ ๋ง์ถ๋๊น์ง ๊ณ์ ์
๋ ฅ์ ๋ฐ์์ผํ๋ฏ๋ก while๋ฌธ ์์ ๋ฃ์ด์ฃผ์๋ค.
(var isRunning = true๋ก ์ค์ ํด์ ๊ณ์ ๋๋๋ก ๋ง๋ฌ.)
์ฌ๊ธฐ์ ํ ๊ฐ์ง ๋ฌธ์ ์ ์ด ์์๋ค.
์คํ์์ผ์ ์
๋ ฅ๊ฐ์ ๋ฃ์๋๋ ๊ณ์ ์ต์
๋๋ก ๋์๋ค.
์๊ณ ๋ณด๋ readLine() ํจ์๋ ๋ฆฌํด๊ฐ์ด '์ต์
๋ ๋ฌธ์์ด'์ด์๋ค.
๊ทธ๋์ ์ต์
๋ unwrapping์ ํด์ฃผ์๋ค.
๋๋ ์ผ๋จ !๋ฅผ ๋ถ์ฌ ๊ฐ์ ๋ก ์ต์
๋์ ๋ฒ๊ฒจ์ฃผ์๋ค.
(์ด์ฐจํผ ๋์ค์ if ์กฐ๊ฑด๋ฌธ์ผ๋ก ์๋ชป๋ ์
๋ ฅ๊ฐ์ ๊ฑธ๋ฌ์ค ์์ )
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ userInputNums์ ๋ฃ์ด์ฃผ์๋ค.
(readLine()์ผ๋ก ๋ฐ์ ์
๋ ฅ๊ฐ = userInputNums)
strike์ ball์ ์์๋ด๋ chkStrikeAndBall ํจ์ ์์ฑ.
Int(userInputNums) == nil
→ userInputNums๊ฐ Int๋ก ๋ณํ๋์ง ์์๋ค๋ฉด, ์ซ์๊ฐ ์๋ ๋ค๋ฅธ ์
๋ ฅ๊ฐ์ ๋ฃ์๋ค๋ ๋ป
์ด์ธ์๋ ๊ณผ์ Lv2์ ์๊ตฌํ๋
3์๋ฆฌ์๋ฅผ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ, 0์ ํฌํจํ ๊ฒฝ์ฐ, ํน์ ์ซ์๋ฅผ ์ค๋ณต ์ฌ์ฉํ ๊ฒฝ์ฐ๋ฅผ
||(or)๋ก ์ฐ๊ฒฐํด if ์กฐ๊ฑด์ ๋ฃ์ด true๋ผ๋ฉด "์ฌ๋ฐ๋ฅด์ง ์์ ์
๋ ฅ๊ฐ์
๋๋ค." ๋ฌธ๊ตฌ๊ฐ ๋์ค๋๋ก ํ๋ค.
๊ทธ ์ด์ธ์ ๊ฒฝ์ฐ์๋ ์
๋ ฅ๊ฐ์ 'Character→String→Int' ์์ผ๋ก ๋ณํํ์ฌ num์ ๋ฃ์ด์ฃผ์๊ณ ,
guard๋ฌธ์ ์ฌ์ฉํด์ ๋ณํ์ ์คํจํ๋ ๊ฒฝ์ฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก "__"์์ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ๋์ค๋๋ก ํ๋ค.
(Character์์ ๋ฐ๋ก Int๋ก ๋ณํ์ด ์๋๊ธฐ ๋๋ฌธ)
๊ทธ๋ฆฌ๊ณ ์์ Int ๋ฐฐ์ด๋ก ์ ์ฅํ ๋๋ค ์ซ์์ ๋น๊ตํ๊ธฐ ์ํด์๋ ๊ฐ์ ํ์
์ด์ด์ผ ํ๊ธฐ ๋๋ฌธ์
var inputNum: [Int] = []
์ด๋ ๊ฒ ์ฌ์ฉ์ ์
๋ ฅ๊ฐ์ Int ๋ฐฐ์ด๋ก ๋ง๋๋ ๋ณ์๋ฅผ ๋ง๋ค๊ณ ,
append๋ฅผ ์ฌ์ฉํด์ num์ ์ถ๊ฐํด ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ var isRunning = true๋ก ์ค์ ํ์ฌ ๊ณ์ ๋๊ณ ์๋ while๋ฌธ์ด ๋๋ ์ ์๋๋ก
isRunning = anserNums != inputNums
์
๋ ฅ๊ฐ๊ณผ ์ ๋ต์ด ๋ค๋ฅด๋ค๋ฉด? ๋ฐ๋๋ก ์๊ฐํด์, ์
๋ ฅ๊ฐ์ด ์ ๋ต๊ณผ ๊ฐ๋ค๋ฉด? false๊ฐ ๋๊ธฐ ๋๋ฌธ์
์ ๋ต์ ๋ง์ถ ์๊ฐ while๋ฌธ์ด ๋๋๊ฒ ๋๋ค.
์ด์ด์ strike์ ball์ ๊ฐฏ์๋ฅผ ๋ด์ ๋ณ์์ ๊ฐ์ ์ซ์์ ๊ฐฏ์๋ฅผ ๋ด์ ๋ณ์๋ฅผ ์ ์ธํด์ฃผ์๋ค.
for๋ฌธ์ ์ฌ์ฉํด์ 0๋ถํฐ inputNums์ ๊ฐฏ์(=3 - 1)๊น์ง ๋๋ ค i ์ ๋ฃ๊ณ ,
num์ inputNums์ i๋ฒ์งธ ์๋ฅผ, answer์ answerNums์ i๋ฒ์งธ ์๋ฅผ ๋ฃ๊ณ ,
num๊ณผ answer๊ฐ ๊ฐ๋ค๋ฉด strikeCount์ 1์ ๋ํด์ฃผ์๋ค.
(= ๊ฐ์ ์๋ฆฌ, ๊ฐ์ ์ซ์๊ฐ ์๋ค๋ฉด)
๊ทธ๋ฆฌ๊ณ answerNums์ num์ ์๋ ์๊ฐ ํฌํจ๋์ด ์๋ค๋ฉด, samNumCount์ 1์ ๋ํด์ฃผ์๋ค.
(= ์๋ฆฌ ์๊ด์์ด ๊ฒน์น๋ ์ซ์๋ ๋ชจ๋ countํ๊ธฐ)
๊ทธ๋ผ ์์ฐ์ค๋ฝ๊ฒ ball์ ๊ฐฏ์๋ samNumCount - strikeCount๋ฅผ ํ๋ฉด ๋๋ค.
์ด์ count๋ฅผ ๋๋์ผ๋, ์๋์ ๊ฐ์ด ์กฐ๊ฑด๋ฌธ์ ํ์ฉํ์ฌ ์กฐ๊ฑด์ ํด๋นํ๋ ๊ฒฝ์ฐ์ ๋ง๋ ๋ฌธ๊ตฌ๋ฅผ ์ค์ ํ๋ฉด ๋๋ค!
์ด๋ ๊ฒ ํ๋ฉด, Lv2๊น์ง ๊ตฌํ ๋!!
๋ค์ ๊ฒ์๊ธ์ ์ด์ด์ Lv3~6 ์์ฑํ๋ ค๊ณ ํ๋ค!
(2024.03.17 ์์ )
์ฒซ๋ ์๋ ๊ณผ์ ๋ด์ฉ๋ง ํ์ฐธ ๋ณด๋ฉด์ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ ์ง ๋จธ๋ฆฌ์์ผ๋ก ๊ณ ๋ฏผ๋ง ํ์๋๋ฐ,
์๋ฌด๋ฐ ์ง์ ์ด ์์๋คใ
ใ
..
๊ทธ๋ฌ๋ค๊ฐ ๊ตฌํํ๊ณ ์ถ์ ๋ด์ฉ์ ์ผ๋จ ์ฃผ์์ผ๋ก ํ๋ํ๋ ์ ์ด๋๊ณ ,
ํ๋์ฉ ์ณ๋ณด๋ฉด์ ์๋ํด ๋ณด๋ผ๋ ์ฐ๋ฆฌ ์กฐ ํ์ฅ๋์ ์๊ธฐ๊ฐ ์๊ฐ๋์ ๋์ ์ด๋ ๊ฒ๋ถํฐ ์์ํ๋ค.๐ฅน
6๋จ๊ณ ์ค์์ Lv2๊ฐ ๊ฐ์ฅ ๋ฉ์ธ์ด๋ฉด์ ์๊ฐํ ๊ฒ๋ค์ด ๋ง์ ์ด๋ ค์๋ ์์์ง๋ง,
'์ด ๊ณผ์ ๋ค์ด ๋ผ๊ฐ ๋๊ณ ์ด์ด ๋๊ฒ ์ง....'๋ผ๋ ์๊ฐ์ผ๋ก ๋๋ฌผ ๋จธ๊ธ๊ณ ํ๋ ๊ฒ ๊ฐ๋ค.
์ด์ ์๋ ๋งํ์ง๋งใ
ใ
ใ
ใ
ใ
... ๋์ค์ ์ด ๊ณผ์ ๋ธ๋ก๊ทธ๋ฅผ ๋ค์ ๋ดค์ ๋,
'์ด ์ฌ์ด๊ฑธ ์ ์ด๋ ค์ํ์ง?'ํ๋ ์๊ฐ์ด ๋นจ๋ฆฌ ์์ผ๋ฉด ์ข๊ฒ ๋ค.^0^
_feat. (์์ผ..'๋ ์ด๊ฑฐ ๋๊ฐ๊ณ ๋ ํ์ด~'๋ผ๊ณ ๋งํ๋ ์ฐ๋ฆฌ keen๋์ด ๋งค์ฐ ์กด๊ฒฝ์ค๋ฌ์..๐คฃ๐)
'iOS ์ฑ ๊ฐ๋ฐ ์ข ํฉ๋ฐ > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
swift_์ผ๊ตฌ ๊ฒ์ ๋ง๋ค๊ธฐ_ํด์ค ๊ฐ์ ํ๊ธฐ (0) | 2024.03.17 |
---|---|
3์ฃผ์ฐจ_Swift ๋ฌธ๋ฒ ์ข ํฉ๋ฐ ์ฌํ_๊ฐ์ธ๊ณผ์ _์ผ๊ตฌ๊ฒ์๋ง๋ค๊ธฐ(Lv3~6) (0) | 2024.03.17 |
3์ฃผ์ฐจ_Swift ๋ฌธ๋ฒ์ข ํฉ๋ฐ ์ฌํ_(2์ผ์ฐจ)_ํด๋ก์ & ๊ณ ์ฐจํจ์ (4) | 2024.03.12 |
3์ฃผ์ฐจ_Swift ๋ฌธ๋ฒ์ข ํฉ๋ฐ ์ฌํ_(1์ผ์ฐจ) (0) | 2024.03.11 |
2์ฃผ์ฐจ_Swift ๋ฌธ๋ฒ ๊ธฐ์ด ๊ณผ์ _๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ (0) | 2024.03.07 |