5. [C์–ธ์–ด] ํ•จ์ˆ˜ ์ดํ•ดํ•˜๊ธฐ

2019. 5. 14. 04:02ใ†PROGRAMMING/C & C++

 

1. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•จ์ˆ˜ ์ดํ•ดํ•˜๊ธฐ

 

main ํ•จ์ˆ˜

 

์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šธ ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์ ‘ํ•˜๋Š” mainํ•จ์ˆ˜์˜ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

์ˆ˜ํ•™์ ์ธ ํ•จ์ˆ˜์˜ ์ •์˜๋Š” y = f(x)๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋งํ•˜๋Š” ํ•จ์ˆ˜๋„, ์ˆ˜ํ•™์  ์˜๋ฏธ์˜ ํ•จ์ˆ˜์™€ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ y = x + 2๋ผ๋Š” ์ˆ˜์‹์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

x = 1 / y = 3

x = 2 / y = 4

x = 3 / y = 5

์šฐ๋ฆฌ๋Š” x์ž…๋ ฅ ๊ฐ’์— ๋”ฐ๋ผ y๊ฒฐ๊ณผ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋ฒˆ์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•จ์ˆ˜์˜ ์ธก๋ฉด์—์„œ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž…๋ ฅ ํ˜•ํƒœ๋Š” ๋‚ด๊ฐ€ ์ˆ˜์‹์—์„œ ๊ฐ’์„ ๋„ฃ์„ ์ธ์ž๋ฅผ ์˜๋ฏธํ•˜๊ณ ,

๋ฐ˜ํ™˜ ๊ฐ’์€ ์ˆ˜์‹์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๊ณ  ์ดํ•ดํ•˜์‹œ๋ฉด ๋  ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 


 

 

2. ํ•จ์ˆ˜ ์ •์˜ํ•˜๊ธฐ

 

ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์ •ํ•˜๊ณ , ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ , ์ „๋‹ฌ ์ธ์ž์™€ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์„

ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•จ์ˆ˜์˜ ์œ ํ˜•์€ ์ด 4๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ „๋‹ฌ ์ธ์ž O ๋ฐ˜ํ™˜ ๊ฐ’ O

 

2. ์ „๋‹ฌ ์ธ์ž O ๋ฐ˜ํ™˜ ๊ฐ’ X

 

3. ์ „๋‹ฌ์ธ์ž X ๋ฐ˜ํ™˜ ๊ฐ’ O

 

4. ์ „๋‹ฌ์ธ์ž X ๋ฐ˜ํ™˜ ๊ฐ’ X

 

ํ•จ์ˆ˜๋Š” ์ด๋ ‡๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์‚ฌ์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ

์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


 

 

3. ํ•จ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ •ํ™•ํ•œ ๋ช…์นญ

 

 


 

 

4. ํ•จ์ˆ˜๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ณผ์ •

 

๊ฐ„๋‹จํ•œ ๋ง์…ˆ ํ•จ์ˆ˜๊ฐ€ ์ž‘๋™ํ•˜๋Š” ์ˆœ์„œ๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

main๋ฌธ์„ ๋”ฐ๋ผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋‹ค๊ฐ€ 

ํ•จ์ˆ˜๋ฅผ ๋งŒ๋‚ฌ์„ ๊ฒฝ์šฐ, ๊ทธ ํ•จ์ˆ˜ ์œ„์น˜๋กœ ์ด๋™ ํ•œ ๋‹ค์Œ์— ํ•จ์ˆ˜์˜ ๋ชธ์ฒด๋ฅผ ๋”ฐ๋ผ ๋‚ด๋ ค์˜ค์‹œ๋ฉด

ํฐ ๋ฌธ์ œ์—†์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


 

 

5. ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

 

๊ฒŒ์ž„์„ ๋งŒ๋“ค ๋•Œ๋ฅผ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

 

1. ์ฝ”๋“œ๊ฐ€ ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ํ•œ ๋ฒˆ ์ž‘์„ฑ๋œ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1๋ฒˆ๊ณผ 2๋ฒˆ์€ ํ•˜๋‚˜์˜ ์˜ˆ๋กœ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์—”ํ„ฐ ๋” ๊ฑด์ „๊ณผ ๊ฐ™์ด

ํ”Œ๋ ˆ์ด์–ด์™€ ๋ชฌ์Šคํ„ฐ ๋‘˜ ๋‹ค ์ด์•Œ์„ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ํƒ„๋ง‰ ๊ฒŒ์ž„์„ ๊ฐœ๋ฐœ ์ค‘์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

์ด์•Œ์„ ์ƒ์„ฑํ•  ๋•Œ 30์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์“ฐ์˜€๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด,

ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋Š”, ํ”Œ๋ ˆ์ด์–ด์™€ ๋ชฌ์Šคํ„ฐ์˜ ์ด์•Œ์„ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋ฅผ 30์ค„์”ฉ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, CreateBullet()์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด ๋†“์•˜๋‹ค๋ฉด ํ•„์š”์— ๋”ฐ๋ผ

1์ค„์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ฝ”๋“œ๋งŒ์œผ๋กœ ์ด์•Œ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

3. ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์„œ ๊ฐœ๋ฐœ ๊ณผ์ •์ด ์‰ฌ์›Œ์ง€๊ณ , ์œ ์ง€๋ณด์ˆ˜๋„ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๋ณดํ†ต ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ

"1๊ฐ€์ง€ ๊ธฐ๋Šฅ -> 1๊ฐœ์˜ ํ•จ์ˆ˜"๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ํ”Œ๋ ˆ์ด์–ด์— ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด

IsLevelUp(int iExp) - ํ”Œ๋ ˆ์ด์–ด๊ฐ€ Lv ์—…์„ ํ–ˆ๋Š”์ง€ ํŒ๋‹จํ•ด์ฃผ๋Š” ํ•จ์ˆ˜.

IsDamaged() - ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋Œ€๋ฏธ์ง€๋ฅผ ์ž…์—ˆ๋Š”์ง€ ํŒ๋‹จํ•ด์ฃผ๋Š” ํ•จ์ˆ˜.

Attack() -  ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต๊ฒฉ์„ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜.

Move() - ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์›€์ง์ด๋Š” ํ•จ์ˆ˜.

๋“ฑ ์˜ ํ•จ์ˆ˜๋“ค์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ฐœ๋ฐœ ๊ณผ์ • ์ค‘์— ๋ชน์„ ์žก์•˜๋Š”๋ฐ, Lv ์—…์„ ์•ˆ ํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์ƒ๊ฒผ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด

์†Œ์Šค ์ฝ”๋“œ๋“ค์„ ๋ชจ๋‘ ํ›‘์–ด๋ณผ ํ•„์š” ์—†์ด

IsLevelUpํ•จ์ˆ˜์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋˜, ํ”Œ๋ ˆ์ด์–ด์— ์ƒˆ๋กœ์šด ๋™์ž‘ ๋ฐ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํŒจ์น˜ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด,

๊ทธ์— ๋”ฐ๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์ฃผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— 

์œ ์ง€ ๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ๋งŽ์€ ์ด๋“์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.