이번엔 turtle graphics를 이용해서 6개의 거북이를 만들어 경주 게임을 만들어보자.
turtle graphics의 Screen을 사욯하여 창을 띄운 후, turtle 거북이 모양으로 색을 각각 다르게 하여 6개를 화면에 띄운다.
그 후 , 어떤 색의 거북이가 우승할 지 입력을 받아 이를 나중 결과와 비교할 것이다.
각각의 거북이들은 랜덤의 속도로 이동할 것이며 화면 기준 왼쪽에서 출발하고 오른쪽으로 달린다.
오른쪽에 도달하면 게임이 끝나고 결과창을 콘솔에 출력하며 마무리 할 것이다.
그렇다면 코드를 작성해보자.
먼저 기본세팅부터 해보자.
먼저 turtle graphics에서 Turtle과 Screen을 import 한다.
screen에 Screen을 할당하고 setup 메소드를 사용하여 가로 1000, 세로 500 사이즈의 screen을 만든다.
어떤 거북이가 우승할 지 예측을 입력받을 변수로 user_bet을 설정하고, 색을 입력할 수 있도록 screen.textinput과 prompt를 사용한다.
거북이의 색으로 사용될 list로 colors를 만들고 거북이들의 시작위치를 화면 왼쪽 끝, 그리고 높이는 적당한 간격으로 띄워서 y_positions로 설정한다.
그리고 거북이를 각각 만들어 하나씩 담아둘 빈 list로 all_turtle를 만든다.
이제 6마리의 거북이를 만들어보자.
새로 만들 거북이를 new_turtle로, shape은 "turtle"로 설정하여 생성한다.
거북이가 새로 생성되는 위치는 화면의 정중앙인 (0, 0)이다.
따라서 이를 y_position의 값으로 penup 상태로 goto메소드를 사용한다.
경주 준비 위치로 이동하는 과정까지 끝나면 그 거북이를 빈 list였던 all_turtle 에 append 한다.
이 과정을 for 문으로 6번 반복한다.
그리고 user_bet 변수에 input 되면 경기가 시작될 수 있도록 if 문을 사용하여 is_race_on 에 True 값을 준다.
그렇다면 while문으로 게임을 시작하자.
all_turtle에 추가된 각가의 turtle은 x 좌표가 480을 초과한다면, 즉 왼쪽 끝에서 출발하여 오른쪽 끝을 넘어갈 경우 is_race_on을 false로 전환한다.
가장 먼저 도달한 turtle의 색은 pencolor를 통해 winning_color로 할당하고 이를 위에서 정한 user_bet과 비교한다.
가장 중요한 거북이의 이동속도는 0부터 20까지의 random한 숫자만큼 이동하도록 rand_distance로 받고, forward 시킨다.
'Studying > Python' 카테고리의 다른 글
18. miniProject(8) - 뱀 게임 2 (feat. turtle) (0) | 2022.07.28 |
---|---|
17. miniProject(8) - 뱀 게임 1 (feat. turtle) (0) | 2022.07.28 |
15. miniProject(6) - hirst spot drawing (feat. turtle) (0) | 2022.07.24 |
14. miniProject(5) - Quiz 프로그램 (0) | 2022.07.24 |
13. miniProject(4) - 커피 자판기 (0) | 2022.07.24 |