질문이 있으십니까?

기본 컨텐츠 및 사용자가 직접 참여하여 만들어진 다양한 내용을 검색합니다.

터틀런 2 만들기

문법

import turtle as t
t.shape("turtle")   #진짜 거북이 모양으로 지정합니다.
t.speed()           #거북이 속도를 바꿉니다. 0: 최고속도, 1: 가장느린속도, 10: 빠른속도
t.pos()             #거북이의 현재 위치(좌표)를 구합니다.(x, y 둘다).
t.goto(x, y)        #거북이를 특정 위치(좌표)로 보냅니다(x, y 둘 다).
t.ontimer(f, 1000)  #1000밀리초(1초) 후에 f 함수를 호출합니다(f 함수는 거북이를 10만큼 앞으로 이동시킵니다.)
t.onkeypress(f, "Up")#위쪽 방향키를 누르면 f함수를 호출합니다.
t.title("welcome")  #거북이 그래픽 창의 이름이 Untitle에서 welcome으로 바뀝니다.
t.write()           #현재 거북이 위치에 Hello를 출력합니다.
t.write("Hello", False, "center", ("", 20)) #현재 거북이 위치에 가운데 정렬로 크기가 20인 Hello를 출력합니다.

소스코드

import turtle as t
import random 

score = 0        #점수를 저장하는 변수
playing = False        #현재 게임이 플레이 중인지 확인하는 변수

te = t.Turtle()        #악당 거북이(빨간색)
te.shape("turtle")
te.color("red")
te.speed(0)
te.up()
te.goto(0, 200)

ts = t.Turtle()        #먹이(초록색 동그라미)
ts.shape("circle")
ts.color("green")
ts.speed(0)
ts.up()
ts.goto(0, -200)

def turn_right():        #오른쪽으로 방향을 바꿉니다.
    t.setheading(0)

def turn_up():        #위로 방향을 바꿉니다.
    t.setheading(90)

def turn_left():        #왼쪽으로 방향을 바꿉니다.
    t.setheading(180)

def turn_down():        #아래로 방향을 바꿉니다.
    t.setheading(270)

def start():        #게임을 시작하는 함수
    global playing 
    if playing == False:
        playing = True
        t.clear() #메세지를 지웁니다.
        play() 

def play():        #게임을 실제로 플레이하는 함수
    global score
    global playing
    t.forward(10)        #주인공 거북이 10만큼 앞으로 이동합니다.
    if random.randint(1, 5) == 3:    #1~5 사이에서 뽑은 수가 3이면(20%확률)
        ang = te.towards(t.pos())
        te.setheading(ang)        #악당 거북이가 주인공 거북이를 바라봅니다.
    speed = score + 5        #점수에 5를 더해서 속도를 올립니다.
    
    if speed > 15:        #속도가 15를 넘지는 않도록 합니다.
        speed = 15
    te.forward(speed)
    
    if t.distance(te) < 12:     #주인공과 악당의 거리가 12보다 작으면
                                             #게임을 종료합니다.
        text = "Score: " + str(score)
        message("Game Over", text)
        playing = False
        score = 0
if t.distance(ts) < 12:     #주인공과 먹이의 거리가 12보다 작으면(가까우면) --> 한번 들여쓰기 하세요!
        score = score + 1    #점수를 올립니다.
        t.write(score)    #점수를 화면에 표시합니다.
        star_x = random.randint(-230, 230)
        star_y = random.randint(-230, 230)
        ts.goto(star_x, star_y) #먹이를 다른 곳으로 옮깁니다.

    if playing:     
        t.ontimer(play, 100)        #게임 플레이 중이면 0.1초 후
                                                   #play 함수를 실행합니다.

def message(m1, m2):        #메세지를 화면에 표시하는 함수
    t.clear()
    t.goto(0, 100)
    t.write(m1, False, "center", ("",20))
    t.goto(0, -100)
    t.write(m2, False, "center", ("",15))
    t.home()

t.title("Turtle Run")
t.setup(500, 500)
t.bgcolor("orange")
t.shape("turtle")        #거북이 모양의 커서를 사용합니다.
t.speed(0)        #거북이 속도를 가장 빠르게 지정합니다.
t.up()
t.color("white")
t.onkeypress(turn_right, "Right")        #오른쪽 키를 누르면 turn_right함수를 실행합니다.
t.onkeypress(turn_up, "Up")
t.onkeypress(turn_left, "Left")
t.onkeypress(turn_down, "Down")
t.onkeypress(start, "space")
t.listen()        #거북이 그래픽 창이 키보드 입력을 받도록 합니다.
message("Turtle Run", "[Space]") #메세지를 띄우는 함수를 부릅니다.

댓글을 작성하세요

문서 이력

  • 2020-06-07 날짜로 신달수 님으로 부터 컨텐츠명이 변경 되었습니다.
  • 2020-06-23 날짜로 신달수 님께서 등록 작업을 하였습니다.
  • 2020-06-24 날짜로 신달수 님께서 수정 작업을 하였습니다.
  • 2020-06-30 날짜로 신달수 님께서 수정 작업을 하였습니다.
  • 2020-07-01 날짜로 신달수 님께서 수정 작업을 하였습니다.