ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ํ„ฐํ‹€ ๊ทธ๋ž˜ํ”ฝ] ์ด๋ฒคํŠธ์™€ ํ•จ์ˆ˜
    ๋กœ๋ด‡๊ต์œก/2ํšŒ์ฐจ_ํŒŒ์ด์ฌ 2022. 1. 11. 19:35

    1. ์ด๋ฒคํŠธ๋ž€?

      - ์ด๋ฒคํŠธ๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๊ฐ์ง€๋˜๊ณ  ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ๋™์ž‘์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

        ์˜ˆ) ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ, ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ

      - ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ •ํ•ด์ง„ ์ฝ”๋“œ๊ฐ’์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

     

    ์ด๋ฒคํŠธ ์˜ˆ์ œ1

    • Turtle ๋ชจ๋“ˆ์€ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ Screen ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • Screen ๊ฐ์ฒด์—๋Š” ํ‚ค๋ณด๋“œ์™€ ๋งˆ์šฐ์Šค ์ž…๋ ฅ์„ ์ œ์–ดํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜์™€ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • Screen ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๊ธฐ๋ณธ ์˜ˆ์ œ ํ‚ค๋ณด๋“œ ํ‚ค(Key)
    screen = turtle.Screen()
    screen.onkey(ํ•จ์ˆ˜๋ช…, '์ฝ”๋“œ')
    screen.listen()




    ์œ„์ชฝ ํ™”์‚ดํ‘œ 'Up'
    ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ 'Down'
    ์™ผ์ชฝ ํ™”์‚ดํ‘œ 'Left'
    ์˜ค๋ฅธ์ชฝ ํ™”์‚ดํ‘œ 'Right'

    # ํ‚ค๋ณด๋“œ ํ‚ค : ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, space ๋“ฑ ...

    # onkey(ํ•จ์ˆ˜๋ช…, '์ฝ”๋“œ') - ํ‚ค๋ณด๋“œ๋ฅผ ์˜ค๋žซ๋™์•ˆ ๋ˆŒ๋Ÿฌ๋„ ํ•œ๋ฒˆ๋งŒ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ

    # onkeypress(ํ•จ์ˆ˜๋ช…,'์ฝ”๋“œ') - ํ‚ค๋ณด๋“œ๋ฅผ ์˜ค๋žซ๋™์•ˆ ๋ˆ„๋ฅด๋ฉด ์ง€์†์ ์œผ๋กœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ

    ์˜ˆ์ œ ์†Œ์Šค(22-key_event.py) ์˜ˆ์ œ ์†Œ์Šค(22-key_event2.py)
    import turtle as t

    t.shape('turtle')
    scr = t.Screen()

    def right():
        t.setheading(0)
        t.forward(50)
    def up():
        t.setheading(90)
        t.forward(50)
    def left():
        t.setheading(180)
        t.forward(50)   
    def down():
        t.setheading(270)
        t.forward(50)

    scr.onkey(right,'Right')
    scr.onkey(up,'Up')
    scr.onkey(left,'Left')
    scr.onkey(down,'Down')

    scr.listen()

    #t.mainloop()
    import turtle as t

    t.shape('turtle')

    def right():
        t.setheading(0)
        t.forward(50)
    def up():
        t.setheading(90)
        t.forward(50)
    def left():
        t.setheading(180)
        t.forward(50)   
    def down():
        t.setheading(270)
        t.forward(50)

    t.onkey(right,'Right')
    t.onkey(up,'Up')
    t.onkey(left,'Left')
    t.onkey(down,'Down')

    t.listen()

    #t.mainloop()

     

    ์‹ค์Šต1) ํ‚ค๋ณด๋“œ ์•ŒํŒŒ๋ฒณ์„ ์ž…๋ ฅํ•˜๋ฉด ์„ ์˜ ์ƒ‰๊น”์ด ๋ฐ”๋€Œ๋„๋ก ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•ด ๋ด…์‹œ๋‹ค.

     

    ์‹ค์Šต2) 'space' ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ทธ๋ฆผ์ด ์ง€์›Œ์ง€๋„๋ก ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•ด ๋ด…์‹œ๋‹ค.

     

     

    ์ด๋ฒคํŠธ ์˜ˆ์ œ2

    • ๋งˆ์šฐ์Šค๋กœ ํ™”๋ฉด์„ ํด๋ฆญํ–ˆ์„ ๋•Œ์˜ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•œ ์ ์˜ ์ขŒํ‘œ(x,y)๋ฅผ ์ธ์ˆ˜๋กœ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

     

    ์˜ˆ์ œ ์†Œ์Šค(23-click_event.py)  
    import turtle as t

    t.speed(0)
    t.pensize(2)
    t.hideturtle()
    t.onscreenclick(t.goto)

    t.listen()

    #t.mainloop()
    t.goto #๊ฑฐ๋ถ์ด์— ๋ฏธ๋ฆฌ ์ •์˜๋œ goto ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
             #๋งˆ์šฐ์Šค ํด๋ฆญํ•œ ์œ„์น˜๋กœ ์›€์ง์ž„

     

    2. ๋ณ„ ๊ทธ๋ฆฌ๊ธฐ

      ๋ณ„์„ ๊ทธ๋ฆฌ๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์—ฌ ํ™”๋ฉด์— ๋ณ„์„ ๊ทธ๋ ค๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์˜ˆ์ œ์—์„œ๋Š” ์ง€์ •ํ•œ ์œ„์น˜์— ๋ณ„์„ ๊ทธ๋ ค๋ณด๊ณ , ๋‘ ๋ฒˆ์งธ ์˜ˆ์ œ์—์„œ๋Š” ์ด๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์ž„์˜์˜ ์œ„์น˜์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํฌ๊ธฐ์˜ ๋ณ„ 20๊ฐœ๋ฅผ ๊ทธ๋ ค๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์˜ˆ์ œ์—์„œ๋Š” ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•˜๋Š” ๊ณณ์— ๋ณ„์„ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์˜ˆ์ œ ์†Œ์Šค(24-star_def.py)  
    import turtle as t

    def star():
        t.begin_fill()
        for i in range(5):
            t.forward(30)
            t.left(144)
        t.end_fill()

    t.bgcolor('black')
    t.color('yellow')
    t.ht()
    t.speed(10)

    star()

    t.penup()
    t.goto(100,100)
    t.pendown()
    star()

     

     

    ์˜ˆ์ œ ์†Œ์Šค(24-star_def2.py)  
    import turtle as t
    import random as r

    def star(x,y):
        t.penup()
        t.goto(x,y)
        t.pendown()
        
        size = r.randint(15,30)
        
        t.begin_fill()
        for i in range(5):
            t.forward(size)
            t.left(144)
        t.end_fill()

    t.bgcolor('black')
    t.color('yellow')
    t.ht()
    t.speed(10)

    for i in range(20):
        star(r.randint(-300,300),r.randint(50,300))

     

     

    ์˜ˆ์ œ ์†Œ์Šค(25-star_click.py)  
    import turtle as t
    import random as r

    def star(x,y):
        t.penup()
        t.goto(x,y)
        t.pendown()
        
        size = r.randint(15,30)
        
        t.begin_fill()
        for i in range(5):
            t.forward(size)
            t.left(144)
        t.end_fill()

    t.bgcolor('black')
    t.color('yellow')
    t.ht()
    t.speed(10)

    t.onscreenclick(star)

    t.listen()
    #t.mainloop()

     

    3. ๋ˆˆ์†ก์ด ๊ทธ๋ฆฌ๊ธฐ

    ์˜ˆ์ œ ์†Œ์Šค(26-snow_def.py)  
    import turtle as t
    import random as r

    def snow():
        snowsize = r.randint(8,12)
        for i in range(12):
            t.forward(snowsize)
            t.backward(snowsize)
            t.right(360/12)

    t.bgcolor('black')
    t.color('white')
    t.pensize(2)

    t.ht()
    t.speed(0)

    for j in range(20):
        t.penup()
        x = r.randint(-350,350)
        y = r.randint(0,350)
        t.goto(x,y)
        t.pendown()
        snow()

     

    ๋Œ“๊ธ€

Designed by Tistory.