๐Ÿ‘ฆ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„/TIL(Today I Learned)

TIL_220427

  • -

์•„์นจ ๊ธฐ์ƒ์„ ์•Œ๋ฆฌ๋Š” ์ชฝ์ง€์‹œํ—˜..

๊ทธ๋ฆฌ๊ณ  ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๋งˆ์ง€๋ง‰ ๋‚ 

 

 

 


 

 

๋ฌด์—‡์„ ๋Š๊ผˆ๋Š”๊ฐ€.

 

1~2๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒฝํ—˜ํ•˜๋ฉด์„œ, ์ ์  ๋งˆ๊ฐ์ผ์— ๋Œ€ํ•œ ๊ฐ•๋ฐ•์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์™„์„ฑ๋„์•ผ ์ •๋ง ์ค‘์š”ํ•˜์ง€๋งŒ, ์š”์ฒญ ์‚ฌํ•ญ์„ ์ถฉ๋ถ„ํžˆ ๋งŒ์กฑํ•˜์˜€๋Š”์ง€, ๋งŒ์กฑํ•œ ์กฐ๊ฑด์— ๋งˆ๊ฐ์ผ์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋Š”์ง€.

์ตœ์†Œํ•œ์˜ ์‹œ๊ฐ„๊นŒ์ง€ ํ™œ์šฉํ•˜๊ณ  ์ตœ๋Œ€ํ•œ์˜ ์—ญ๋Ÿ‰์„ ๋ฐœํœ˜ํ•˜๋Š” ์‹ธ์›€์ด ๋˜๊ฒ ๋‹ค.

 

์•„์นจ๋ถ€ํ„ฐ ํŠœํ„ฐ๋‹˜์„ ํ†ตํ•ด ๋งˆ์Œ์œผ๋กœ ์ „ํ•˜๋Š” ๋ง์„ ๋“ฃ๊ฒŒ ๋œ ๋“ฏ ํ•˜๋‹ค.

 

" ์–ด๋ฆฐ ์•„์ด, ์–ด๋ฅด์‹ , ์žฅ์• ์šฐ ๋“ฑ

๋ชจ๋“  ์‚ฌ๋žŒ์ด ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก

ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์‚ฌ๋žŒ.

๊ทธ๊ฒŒ ๊ฐœ๋ฐœ์ž ์•„๋‹๊นŒ์š”? "

- ์ด ํŠœํ„ฐ -

 

'๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋˜๊ณ  ์‹ถ๋‹ค' ํ•ด์„œ ๋ชจ๋“  ์—ด์‹ฌํžˆ ํƒ€์ธ์„ ์œ„ํ•ด ๋‹ฌ๋ ค์˜จ ๋‚ด ๊ณผ๊ฑฐ๋“ค์ด ๋ฌธ๋œฉ ๋– ์˜ค๋ฅด๊ณ ,

'์ด์ œ๋Š” ๋‚ด๊ฐ€ ๋” ๋ถ„๋ช…ํžˆ ๋‹ฌ๋ฆด ์ˆ˜ ์žˆ๊ฒ ๋‹ค' ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

 

๋‚˜๋Š” ์‚ฌ๋žŒ์„ ๋•๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

 

 


 

 

python ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ ์กฐ๊ฑด๋ฌธ

 

1) ์กฐ๊ฑด๋ฌธ์„ ํ™œ์šฉํ•œ ๊ฒฝ์šฐ

# ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉํ•œ ์ „๊ธฐ๋Ÿ‰
# value = 99;

# ๋‘ ๋ฒˆ์งธ ์‚ฌ์šฉํ•œ ์ „๊ธฐ๋Ÿ‰
value = 150

# ํฌ๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค...
print("=" * 20);
print(" ์ฃผํƒ์šฉ ์ „๊ธฐ์š”๊ธˆ(์ €์••) ๊ณ„์‚ฐ๊ธฐ ");
print("=" * 20);

# ๋งŒ์•ฝ ์‚ฌ์šฉ์ „๊ธฐ๋Ÿ‰์ด 100์ดํ•˜ ๋ผ๋ฉด์€...
if (value <= 100):
    # ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์ „๊ธฐ๋Ÿ‰(value)์— 60.7์„ ๊ณฑํ•ด์ค€๋‹ค.
    # ์ „๊ธฐ์„ธ(price)
    price = value * 60.7;
# ๋งŒ์•ฝ ์‚ฌ์šฉ์ „๊ธฐ๋Ÿ‰์ด 100์„ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ
elif (100 < value):
    # ๊ธฐ์กด 100 ์ดํ•˜์— ๋Œ€ํ•œ ์—ฐ์‚ฐ + 100 ์ดˆ๊ณผ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ
    # ์ „๊ธฐ์„ธ(price)
    price = (100 * 60.7) + (value - 100) * 125.9;

print(value, "kWh์˜ ์ „๊ธฐ ์š”๊ธˆ์€ ", price, "์› ์ž…๋‹ˆ๋‹ค.")

 

2) ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋กœ ๋ฌถ์–ด์ค€ ๊ฒฝ์šฐ

- ์—ฐ์‚ฐ

def ์—ฐ์‚ฐ(value):
    # ํฌ๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค...
    print("=" * 20);
    print(" ์ฃผํƒ์šฉ ์ „๊ธฐ์š”๊ธˆ(์ €์••) ๊ณ„์‚ฐ๊ธฐ ");
    print("=" * 20);

    # ๋งŒ์•ฝ ์‚ฌ์šฉ์ „๊ธฐ๋Ÿ‰์ด 100์ดํ•˜ ๋ผ๋ฉด์€...
    if (value <= 100):
        # ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ ์ „๊ธฐ๋Ÿ‰(value)์— 60.7์„ ๊ณฑํ•ด์ค€๋‹ค. 
        # ์ „๊ธฐ์„ธ(price)
        price = value * 60.7;
        # ๋งŒ์•ฝ ์‚ฌ์šฉ์ „๊ธฐ๋Ÿ‰์ด 100์„ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ
    elif (100 < value):
        # ๊ธฐ์กด 100 ์ดํ•˜์— ๋Œ€ํ•œ ์—ฐ์‚ฐ + 100 ์ดˆ๊ณผ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ 
        # ์ „๊ธฐ์„ธ(price) 
        price = (100 * 60.7) + (value - 100) * 125.9;

    return price

- ์ถœ๋ ฅ

def ์š”๊ธˆ์•ˆ๋‚ด(value, price_input):
    print(value, "kWh์˜ ์ „๊ธฐ ์š”๊ธˆ์€ ", price_input, "์› ์ž…๋‹ˆ๋‹ค.")

- ํ•˜๋‚˜์˜ ํ•จ์ˆ˜

def ํ•œ์ „(value):
    price = ์—ฐ์‚ฐ(value)
    ์š”๊ธˆ์•ˆ๋‚ด(value, price_input=price)

 

 


 

 

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๊ธฐํš [22. 04. 27. ์ˆ˜์ •]

๋”๋ณด๊ธฐ

1. ์ฐฝ ํ™”๋ฉด

- 640 * 640 ํฌ๊ธฐ

 

2. ๊ฒŒ์ž„ ์ด๋ฏธ์ง€

- ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€, ์ ์ˆ˜ ํ™”๋ฉด ์ด๋ฏธ์ง€ 640 * 640

- ๊ฒŒ์ž„ ๋ฉ”๋‰ด ํ™”๋ฉด ์ด๋ฏธ์ง€ 640 * 640

- ์šฐ์ฃผ์„  ์ด๋ฏธ์ง€ 42 * 40

- ํญ๋ฐœ ์ด๋ฏธ์ง€ 70 * 55

- ๋ฏธ์‚ฌ์ผ ์ด๋ฏธ์ง€ 20 * 20

- ์šด์„ ์ด๋ฏธ์ง€ (75 * 37, 75 * 55, , 75 * 25, 75 * 52, , 75 * 61)

 

3. ์ขŒํ‘œ

- ์šฐ์ฃผ์„  ๊ณ ์ • ์œ„์น˜ : ์ฐฝ ํ™”๋ฉด์˜ ์ค‘์•™

- ๋ฏธ์‚ฌ์ผ ์ด๋™ ์œ„์น˜(์šฐ์ฃผ์„  ์ค‘์‹ฌ์œผ๋กœ) : ๋„ค ๋ฐฉํ–ฅ ์ง์ง„

- ์šด์„ ์ด๋™ ์œ„์น˜(๋„ค ๋ฐฉํ–ฅ ์ฐฝ ์ค‘์‹ฌ์œผ๋กœ ์šฐ์ฃผ์„ ์„ ํ–ฅํ•ด) : ๋„ค ๋ฐฉํ–ฅ ์•ˆ์ชฝ ์ด๋™

- ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ์œ„์น˜ : (0, 0)

- ๊ฒŒ์ž„ ๋ฉ”๋‰ด ํ™”๋ฉด ์ด๋ฏธ์ง€ ์œ„์น˜ : (0, 0)

- ํญ๋ฐœ ์ด๋ฏธ์ง€ ์œ„์น˜

- ์ตœ๊ณ  ์ ์ˆ˜ ๊ธฐ๋ก ์œ„์น˜ : (150, 20)

- ๊ฒŒ์ž„ ์ œ๋ชฉ ํ…์ŠคํŠธ ์œ„์น˜ : (์ฐฝ ๋„ˆ๋น„ ์ค‘์‹ฌ, ์ฐฝ ๋†’์ด ์ค‘์‹ฌ)

- ์—”ํ„ฐ ํ‚ค ์•ˆ๋‚ด ํ…์ŠคํŠธ ์œ„์น˜ : (์ฐฝ ๋„ˆ๋น„ ์ค‘์‹ฌ, ์ฐฝ ๋†’์ด ์ค‘์‹ฌ + 200)

- ๊ฒŒ์ž„ ์‹œ์ž‘ ํ…์ŠคํŠธ ์œ„์น˜ : (์ฐฝ ๋„ˆ๋น„ ์ค‘์‹ฌ, ์ฐฝ ๋†’์ด ์ค‘์‹ฌ + 250)

- ์ ์ˆ˜ ํ™•์ธ ์•ˆ๋‚ด ํ…์ŠคํŠธ ์œ„์น˜ : (์ฐฝ ๋„ˆ๋น„ ์ค‘์‹ฌ, ์ฐฝ ๋†’์ด ์ค‘์‹ฌ + 350)

- ์ ์ˆ˜ ํ…์ŠคํŠธ ์œ„์น˜ 1 : (์ฐฝ ๋„ˆ๋น„ ์ค‘์‹ฌ, ์ฐฝ ๋†’์ด / 4 + 100)

- ์ ์ˆ˜ ํ…์ŠคํŠธ ์œ„์น˜ 2 : (์ฐฝ ๋„ˆ๋น„ ์ค‘์‹ฌ, ์ฐฝ ๋†’์ด / 4 + 200)

 

4. FPS

- ์ดˆ๋‹น 60

 

5. ์ƒ‰์ƒ

- BLACK = (0, 0, 0)
- WHITE = (255, 255, 255)
- YELLOW = (250, 250, 50)
- RED = (250, 50, 50)

 

6. ์œ„์น˜ ์ •์˜

- ์šฐ์ฃผ์„ ์˜ ํ™”๋ฉด ์œ„์น˜ ๊ณ ์ •

- ์ด๋ฒคํŠธ ํ‚ค ์ž…๋ ฅ์— ๋”ฐ๋ฅธ ๋„ค ๋ฐฉํ–ฅ ๋ฏธ์‚ฌ์ผ ์‚ฌ์ถœ ์œ„์น˜ ์ •์˜

-- ๋ฏธ์‚ฌ์ผ์ด ํ™”๋ฉด ๋ฐ–์œผ๋กœ ๋‚˜๊ฐˆ ๊ฒฝ์šฐ ๋ฏธ์‚ฌ์ผ ์ œ๊ฑฐ

- ์ฐฝ์˜ ์ค‘์‹ฌ ๋„ค ๋ฐฉํ–ฅ์œผ๋กœ ์šฐ์ฃผ์„ ์„ ํ–ฅํ•˜๊ฒŒ ์šด์„์˜ ์ด๋™ ์œ„์น˜ ์ •์˜

 

7. ์ถฉ๋Œ ์ฒ˜๋ฆฌ

- ์šฐ์ฃผ์„ ๊ณผ ์šด์„์˜ ์ถฉ๋Œ ์ฒ˜๋ฆฌ

- ๋ฏธ์‚ฌ์ผ๊ณผ ์šด์„์˜ ์ถฉ๋Œ ์ฒ˜๋ฆฌ

 

8. ๊ทœ์น™ ์ •์˜ [22. 04. 27. ์ˆ˜์ •]

- ์šฐ์ฃผ์„ ์œผ๋กœ ํ–ฅํ•˜๋Š” ์šด์„์˜ ์ถฉ๋Œ์„ ๋ง‰์•„์•ผ ํ•จ.

- ์šฐ์ฃผ์„ ์€ ๋„ค ๋ฐฉํ–ฅ์œผ๋กœ ๋ฏธ์‚ฌ์ผ์„ ๋ฐœ์‚ฌ

- ์šด์„์€ ๋„ค ๋ฐฉํ–ฅ์—์„œ ๋žœ๋ค์˜ ํ™•๋ฅ ๋กœ 5๊ฐ€์ง€์˜ ์šด์„ ์ข…๋ฅ˜ ์ถœํ˜„

- 100/ 200/ 300 ์˜ ์šด์„ ๊ฒฉ์ถ”์— ๋”ฐ๋ฅธ ๋‚œ์ด๋„ ์ฆ๊ฐ€

- ๋‹‰๋„ค์ž„๊ณผ ์ตœ๊ณ ์  ์ ์ˆ˜ ๊ธฐ๋ก

 

๊ธฐ๋Šฅ ์ถ”๊ฐ€

1) ์ ์ˆ˜ ๊ธฐ๋ก

- f = open('ํŒŒ์ผ ์ด๋ฆ„.txt', 'a = ๊ธฐ๋ก / r = ์ฝ๊ธฐ') ์„ ํ†ตํ•ด ํ…์ŠคํŠธ ๋‚ด์šฉ ์ €์žฅ๊ณผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉ

- ๊ธฐ๋ก

# ๊ฒŒ์ž„ ์ข…๋ฃŒ ํ›„ ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋ฆ„๊ณผ ์ ์ˆ˜ ํŒŒ์ผ์— ๊ธฐ๋ก
# ์ถ”๊ฐ€ ๋ชจ๋“œ๋กœ ํŒŒ์ผ ์—ด๊ธฐ
f = open('gamelog.txt', 'a')
# :๋กœ ๋‚˜๋ˆ„์–ด ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋ฆ„๊ณผ ์ ์ˆ˜ ์ €์žฅ
f.write(str(playerName) + ":" + str(shot_count))
f.write("\n")  # ์ค„ ๋ฐ”๊ฟˆ
# ํŒŒ์ผ ๋‹ซ๊ธฐ
f.close()

- ์ฝ๊ธฐ

# ํ˜„์žฌ ํ”Œ๋ ˆ์ด์–ด์˜ ์Šค์ฝ”์–ด ๊ธฐ๋ก ํ›„ ์ตœ๊ณ ์  ์ถœ๋ ฅ
# ํŒŒ์ผ ์ฝ๊ธฐ ๋ชจ๋“œ๋กœ ์—ด๊ธฐ
f = open('gamelog.txt', 'r', encoding='utf-8')
# ์ฒซ๋ฒˆ์งธ ์ค„ ์ฝ์–ด์˜ค๊ธฐ
fristline = f.readline()
a = fristline.split(":")  # ์ฝ์–ด์˜จ ์ •๋ณด๋ฅผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅ
# ์ฒ˜์Œ ์ฝ์–ด์˜จ ์ •๋ณด๋ฅผ bestPlayer์™€ bestScore์— ์ €์žฅ
bestPlayer = a[0]
bestScore = a[1]
bestScore.rstrip()  # \n ์—†์• ๊ธฐ(intํ˜•์œผ๋กœ ํ˜• ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด)
bestScore = int(bestScore)  # ๊ฐ’ ๋น„๊ต๋ฅผ ์œ„ํ•ด intํ˜•์œผ๋กœ ํ˜• ๋ณ€ํ™˜

- ๋ถˆ๋Ÿฌ์˜จ ๊ฐ’ ํ‘œ์‹œ

# ๋‚˜๋จธ์ง€ ์ •๋ณด ์ฝ์–ด ์˜ด
while True:
    line = f.readline()
    # ์ฝ์–ด ์˜ฌ ๋‚ด์šฉ์ด ์—†์œผ๋ฉด ๋ฌดํ•œ ๋ฃจํ”„ ํƒˆ์ถœ
    if not line: break
    b = line.split(":")  # : ๋กœ ๋‚˜๋ˆ„์–ด ๋ฆฌ์ŠคํŠธ์˜ ํ˜•ํƒœ๋กœ ์ €์žฅ
    # ์ฝ์–ด ์˜จ ์ •๋ณด๋ฅผ Player์™€ Score๋กœ ๋‚˜๋ˆ„์–ด ์ €์žฅ
    Player = b[0]
    Score = b[1]
    Score.rstrip()  # \n ์—†์• ๊ธฐ(intํ˜•์œผ๋กœ ํ˜• ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด)
    Score = int(Score)  # ๊ฐ’ ๋น„๊ต๋ฅผ ์œ„ํ•ด intํ˜•์œผ๋กœ ํ˜• ๋ณ€ํ™˜

    # ์›๋ž˜ ์ €์žฅ๋˜์–ด ์žˆ๋˜ bestScore์™€ ๋น„๊ตํ•˜์—ฌ Score๊ฐ€ ๋” ๋†“์„ ๊ฒฝ์šฐ bestPlayer์™€ bestScore ๊ฐฑ์‹ 
    if (bestScore < Score):
        bestPlayer = Player
        bestScore = Score

draw_text('bestPlayer is {}'.format(bestPlayer), font_40, screen, int(WINDOW_WIDTH / 2),
          int(WINDOW_HEIGHT / 4) + 100, WHITE)
draw_text('bestScore is {}'.format(str(bestScore)), font_40, screen, int(WINDOW_WIDTH / 2),
          int(WINDOW_HEIGHT / 4) + 200, WHITE)

 

 

์˜ค๋ฅ˜ ๋…ธํŠธ

1) TypeError: an integer is required (got type str)

- ์ธ์ฝ”๋”ฉ error : utf-8, cp949

-

์•”์‹œ์ ์œผ๋กœ 3๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์— integer ๋ฅผ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ช…์‹œ์ ์œผ๋กœ encoding์„ ์จ์ค€๋‹ค.

f = open('gamelog.txt', 'r', encoding='utf-8')

 

 

์ตœ์ข… ์™„์„ฑ

 

์†Œ๋ฆฌ ์ฃผ์˜ - ๋ณผ๋ฅจ์„ ๋‚ฎ์ถฐ์„œ ์žฌ์ƒํ•ด์ฃผ์„ธ์š”.

 

 
 
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.