데이터 분석가

파이썬(Python) 거북이 경주(turtle race) 프로젝트 본문

파이썬(python) 프로젝트 모음

파이썬(Python) 거북이 경주(turtle race) 프로젝트

PlintAn 2023. 3. 28. 14:00

안녕하세요 !

거북이 경주

이번 시간에는 거북이들을 경주 시켜서 누가 1등 하는지 내기하는 프로그램을 만들어보겠습니다.

 

from turtle import Turtle, Screen
import random

is_race_on = False
screen = Screen() #화면 초기화 ()
screen.setup(width=500, height=400) #불러온 화면 크기 설정 너비 500, 높이 400
user_bet = screen.textinput(title="내기 시작", prompt="어떤 색 거북이가 1등할까요?: ")
colors = ["red", "orange", "yellow", "green", "blue", "purple", "black"]
y_positions = [-70, -40, -10, 20, 50, 80, 110] #거북이 시작 위치
all_turtles = []

사실 저번 시간이랑 같은 모듈을 사용합니다 ! 위와 똑같이 가져와 주시고

 

screen.setup을 이용해서 너비 500, 높이 400으로 설치하고

 

유저의 베팅은 어떤 색인지 입력합니다

 

색은 빨강색, 오렌지색, 노란색, 초록색, 파란색, 보라색, 검정색 으로 7가지 입니다.

 

y_positions은 높이 400의 화면(y축 범위 -200 ~ +200) 중 거북이들의 y축 위치.

 

for turtle_index in range(0, 7): #거북이 7마리 생성
    new_turtle = Turtle(shape="turtle")
    new_turtle.penup() #거북이 시작 위치에서 펜 허용
    new_turtle.color(colors[turtle_index]) #7가지 색 인덱싱
    new_turtle.goto(x=-230, y=y_positions[turtle_index]) #거북이 시작점 좌표(-230,개별좌표)
    all_turtles.append(new_turtle) #위에 적용된 거북이 값을 all_turtles에 추가

for문을 이용해서 7마리의 거북이에 대한 특성을 입력합니다

 

모양은 거북이이고, 정해진 좌표에서 penup(펜 허용), 7가지 색 인덱싱, 시작 좌표(-230, 개별좌표)

 

로 이루하진 7마리 거북이를 all_turtles = [] 리스트에 추가.

if user_bet: #유저 베팅
    is_race_on = True #반복

while is_race_on: #경주 시작 반복문
    for turtle in all_turtles: #7마리 거북이를 하나씩 반복
        if turtle.xcor() > 230: #거북이 x축이 230보다 크다면(x축 범위 -250 ~ 250)
            is_race_on = False #x 축이 230보다 높을 경우 종료
            winning_color = turtle.pencolor() #하나씩 반복된 거북이 중 230을 넘은 거북이의 색 도출
            if winning_color == user_bet: #승리 거북이 색 = 유저 베팅 거북이 색
                print(f"축하합니다! 그 {winning_color}는 1등하였습니다!") #승리
            else:
                print(f"아쉽게도 그 {winning_color}거북이는 졌습니다")

        rand_distance = random.randint(0, 10) #거북이들은 1~10칸 중 랜덤으로 이동
        turtle.forward(rand_distance)

screen.exitonclick() #클릭 시 종료

첫 번째 코드문에서 input으로 입력한 거북이 색이

 

xcol(x축 -250 ~ +250)이 230보다 큰 거북이가 있다면

 

그 1등한 거북이 색과 input으로 입력한 거북이 색이 같다면

 

승리하고 다르다면 진 게임이 됩니다.

 

 

 

7마리의 거북이들은 자신의 차례에 for turtle in all_turles를 한번씩 반복하게 됩니다.

 

이 때, 거북이는 random.randint(0, 10) 랜덤 함수로 한번의 차례에 가는 거리를 배정 받아 이동합니다.

 

x축 230이 넘은 거북이가 있다면 종료되고, 화면을 클릭하면 빠져나오게 됩니다.

 

 

저는 'red'에 걸었었는데요 'green' 거북이가 1등을 하였네요

 

정말 누가 이길지 예측이 안되는거 같습니다 ㅎㅎ

 

 

 

Comments