고차함수란?

함수내부에 다른 함수를 사용하는것을 의미한다.

turtle - 키입력 받기

onkey 내부에 다른 함수를 입력하여 키 반응을 얻을 수 있다.

from turtle import Turtle, Screen

turtle = Turtle()
screen = Screen()

def move_forward() :
    turtle.forward(30)

def move_backward() :
    turtle.backward(30)

def clock_wise() :
    turtle.right(10)

def counter_clock_wise() :
    turtle.left(10)

def clear() :
    turtle.clear()
    turtle.penup()
    turtle.home()
    turtle.pendown()

screen.listen()
screen.onkey(fun=move_forward, key="w")
screen.onkey(fun=move_backward, key="s")
screen.onkey(fun=clock_wise, key="d")
screen.onkey(fun=counter_clock_wise, key="a")
screen.onkey(fun=clear, key="c")
screen.exitonclick()

거북이 레이싱 게임

import random
from turtle import Turtle, Screen

screen = Screen()
screen.setup(500,400)
user_bet = screen.textinput(title="배팅을 시작합시다", prompt="누가 이길까요? 색상을 선택해주세요 > ")

colors = ["red","yellow","green","blue","purple","orange"]
y_position = [-125,-75,-25,25,75,125]
all_turtles = []

is_race_on = False

for n in range(6) :
    new_turtle = Turtle("turtle")
    new_turtle.color(colors[n])
    new_turtle.penup()
    new_turtle.goto(-210,y_position[n])
    all_turtles.append(new_turtle)

if user_bet :
    is_race_on = True

while is_race_on :
    for turtle in all_turtles :
        if turtle.xcor() > 230 :
            is_race_on = False
            winning_color = turtle.pencolor()
            if winning_color == user_bet :
                print(f"승리했어요 우승 색상 : {winning_color}")
            else :
                print(f"패배했어요 우승 색상 : {winning_color}")
        random_distance = random.randint(0,10)
        turtle.forward(random_distance)

screen.exitonclick()