편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2022.11.23

    거북이게임 목숨 추가


    import turtle as t
    import random
    
    
    # 스크린 객체 생성
    screen = t.Screen()
    # 스크린 배경색 지정
    screen.bgcolor("lightgreen")
    
    
    # 울타리 그리기
    mypen = t.Turtle()
    mypen.penup()
    mypen.setposition(-300, 300)
    mypen.pendown()
    mypen.pensize(3)
    
    for x in range(4):
        mypen.forward(600)
        mypen.right(90)
    
    mypen.hideturtle()
    
    
    
    # Turtle 객체 p 생성
    p = t.Turtle()
    # p 객체의 모양을 거북이로 만들기
    p.shape("turtle")
    # p 객체 크기 설정
    p.turtlesize(2, 2)
    # p 객체 색상 설정,
    p.color("blue")
    # 거북이를 따라다니는 선을 제거
    p.penup()
    
    
    
    
    # 거북이의 움직임 속도 및 변수
    p.speed = 1
    score = 0
    game_over = False
    
    
    
    def turnleft():
        p.left(30)
    
    
    def turnright():
        p.right(30)
    
    
    def increasespeed():
        global speed
        speed += 1
    
    
    def decreasespeed():
        global speed
        speed -= 1
    
    def rand_pos():
        x_cor = random.randint(-150, 150)
        y_cor = random.randint(-150, 150)
        return x_cor, y_cor
    
    #점수 표시
    t.goto(0, 350)
    t.write(f"score: {score}", False, "center", ("", 20))
    
    #먹이
    food = t.Turtle()
    food.ht()
    food.shape("triangle")
    food.up()
    food.color("darkgreen")
    food.setheading(90)
    food.speed(0)
    food.goto(rand_pos())
    food.st()
    
    #독초
    p_herbs = t.Turtle()
    p_herbs.ht()
    p_herbs.shape("triangle")
    p_herbs.up()
    p_herbs.color("red")
    p_herbs.setheading(90)
    p_herbs.speed(0)
    p_herbs.goto(rand_pos())
    p_herbs.st()
    
    
    screen.listen()
    screen.onkey(turnleft, "Left")
    screen.onkey(turnright, "Right")
    screen.onkey(increasespeed, "Up")
    screen.onkey(decreasespeed, "Down")
    
    while not game_over:
        p.forward(p.speed)
    
        if p.xcor() > 360 or p.xcor() < -360 or p.ycor() > 360 or p.ycor() < -360:
            p.right(180)
        if p.distance(food) < 20:
            food.goto(rand_pos())
            p_herbs.goto(rand_pos())
            p.speed += 0.1
            score += 1
            t.clear()
            t.write(f"score: {score}", False, "center", ("", 20))
        if p.distance(p_herbs) < 20:
            game_over = True
    
    t.goto(0, 0)
    t.write("Game Over", False, "center", ("", 50))
    
    while True:
        p.forward(p.speed)
    
        # 울타리 체크
        if p.xcor() > 300 or p.xcor() < -300:
            p.right(180)
    
        if p.ycor() > 300 or p.ycor() < -300:
            p.right(180)
    

    여기서 독초를 먹으면 바로 게임오버가 되는데 여분의 목숨을 3개정도로 추가하고 싶으면 어떻게해야할까요.

  • 프로필 jinwon123459@gmail.com님의 편집
    날짜2022.11.22

    거북이게임 목숨 추가


    import turtle as t import random

    스크린 객체 생성

    screen = t.Screen()

    스크린 배경색 지정

    screen.bgcolor("lightgreen")

    울타리 그리기

    mypen = t.Turtle() mypen.penup() mypen.setposition(-300, 300) mypen.pendown() mypen.pensize(3)

    for x in range(4): mypen.forward(600) mypen.right(90)

    mypen.hideturtle()

    Turtle 객체 p 생성

    p = t.Turtle()

    p 객체의 모양을 거북이로 만들기

    p.shape("turtle")

    p 객체 크기 설정

    p.turtlesize(2, 2)

    p 객체 색상 설정,

    p.color("blue")

    거북이를 따라다니는 선을 제거

    p.penup()

    거북이의 움직임 속도 및 변수

    p.speed = 1 score = 0 game_over = False

    def turnleft(): p.left(30)

    def turnright(): p.right(30)

    def increasespeed(): global speed speed += 1

    def decreasespeed(): global speed speed -= 1

    def rand_pos(): x_cor = random.randint(-150, 150) y_cor = random.randint(-150, 150) return x_cor, y_cor

    점수 표시

    t.goto(0, 350) t.write(f"score: {score}", False, "center", ("", 20))

    먹이

    food = t.Turtle() food.ht() food.shape("triangle") food.up() food.color("darkgreen") food.setheading(90) food.speed(0) food.goto(rand_pos()) food.st()

    독초

    p_herbs = t.Turtle() p_herbs.ht() p_herbs.shape("triangle") p_herbs.up() p_herbs.color("red") p_herbs.setheading(90) p_herbs.speed(0) p_herbs.goto(rand_pos()) p_herbs.st()

    screen.listen() screen.onkey(turnleft, "Left") screen.onkey(turnright, "Right") screen.onkey(increasespeed, "Up") screen.onkey(decreasespeed, "Down")

    while not game_over: p.forward(p.speed)

    if p.xcor() > 360 or p.xcor() < -360 or p.ycor() > 360 or p.ycor() < -360:
        p.right(180)
    if p.distance(food) < 20:
        food.goto(rand_pos())
        p_herbs.goto(rand_pos())
        p.speed += 0.1
        score += 1
        t.clear()
        t.write(f"score: {score}", False, "center", ("", 20))
    if p.distance(p_herbs) < 20:
        game_over = True
    

    t.goto(0, 0) t.write("Game Over", False, "center", ("", 50))

    while True: p.forward(p.speed)

    # 울타리 체크
    if p.xcor() > 300 or p.xcor() < -300:
        p.right(180)
    
    if p.ycor() > 300 or p.ycor() < -300:
        p.right(180)
    

    여기서 독초를 먹으면 바로 게임오버가 되는데 여분의 목숨을 3개정도로 추가하고 싶으면 어떻게해야할까요