Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 인프런
- 노드에 리액트 추가하기
- node.js 설치
- spring-boot
- react오류
- Spring-Framework
- intellij
- react
- vs code 내 node
- Colaboratory 글자 깨짐
- 자바스크립트
- 모두의 파이썬
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- Concurrently
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- props
- 거북이 대포 게임
- 따라하며 배우는 노드 리액트 기본 강의
- 타자 게임 만들기
- 모던자바스크립트
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- googleColaboratory
- 리액트
- Do it 자바스크립트 + 제이쿼리 입문
- JS 개념
- node.js로 로그인하기
- DB Browser
- 계산맞추기 게임
- Python
- 웹 게임을 만들며 배우는 리액트
Archives
- Today
- Total
프로그래밍 삽질 중
모두의 파이썬 - Day 17 터틀런 만들기 본문
https://thebook.io/007026/day17/01/
[조건 1]
- 거북이(t), 악당거북이(te, red), 먹이(ts, green) 3개가 등장
- 일정한 시간마다 거북이와 악당 거북이를 움직이고(거북이 뒤를 악당 거북이가 따라다님)
- 거북이는 화살표로 이동
- 거북이가 먹이를 먹었는지, 악당 거북이에게 붙잡히지 않았는지 확인
- 악당 거북이에게 거북이가 붙잡혔을 경우 더이상 움직이지 않음
[조건 1 코드]
# 타이머 기능 = 0.1초 마다 play함수를 실행하도록 함
import turtle as t
import random
# 악당 거북이
te = t.Turtle() # 거북이 추가 시 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_left(): # 왼쪽으로 방향 바꿈
t.setheading(180)
def turn_up(): # 위로 방향 바꿈
t.setheading(90)
def turn_down(): # 아래로 방향 바꿈
t.setheading(270)
# 실제 거북이 움직이기
def play():
t.forward(10) #방향키로 이동 전까지 계속 앞으로 10씩 감
ang = te.towards(t.pos())
te.setheading(ang) # 악당 거북이가 거북이를 바라보게 함
te.forward(9)
if t.distance(ts) < 12: # 거북이와 먹이 거리가 12미만이면
star_x = random.randint(-230, 230)
star_y = random.randint(-230, 230)
ts.goto(star_x, star_y) # 먹이가 랜덤하게 옮김
if t.distance(te) >= 12: # 거북이와 악당 거리가 12 이상이면
t.ontimer(play, 100) # 0.1초 후 play 함수 실행(계속 진행)
# 거리가 12 미만이면 게임 실행되지 않음
#배경은 500*500 크기, 오렌지색
t.setup(500, 500)
t.bgcolor("orange")
#거북이 색 : 하얀색, 방향키에 따라 움직임
t.shape("turtle")
t.speed(0)
t.up()
t.color("white")
t.onkeypress(turn_right, "Right")
t.onkeypress(turn_left, "Left")
t.onkeypress(turn_up, "Up")
t.onkeypress(turn_down, "Down")
t.listen() #사용자 입력이 잘 처리되도록 거북이 그래픽 창에 포커스를 줌
play()
t.mainloop()
[조건 2]
- 악당 거북이 2마리라면?
- 두 악당 거북이 중 한 마리만 먼저 잡으면 게임 오버
[조건 2 코드]
# 타이머 기능 = 0.1초 마다 play함수를 실행하도록 함
import turtle as t
import random
# 악당 거북이 1
te1 = t.Turtle() # 거북이 추가 시 Turtle은 대문자
te1.shape("turtle")
te1.color("red")
te1.speed(0)
te1.up()
te1.goto(-50, 200)
# 악당 거북이 2
te2 = t.Turtle() # 거북이 추가 시 Turtle은 대문자
te2.shape("turtle")
te2.color("red")
te2.speed(0)
te2.up()
te2.goto(50, 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_left(): # 왼쪽으로 방향 바꿈
t.setheading(180)
def turn_up(): # 위로 방향 바꿈
t.setheading(90)
def turn_down(): # 아래로 방향 바꿈
t.setheading(270)
# 악당 거북이가 하는 행동들(중복되므로 함수로 빼줌)
def villain(te):
ang = te.towards(t.pos())
te.setheading(ang) # 악당 거북이가 거북이를 바라보게 함
te.forward(9)
# 실제 거북이 움직이기
def play():
t.forward(10)
# 악당 거북이 1
villain(te1)
# 악당 거북이 2
villain(te2)
if t.distance(ts) < 12: # 거북이와 먹이 거리가 12미만이면
star_x = random.randint(-230, 230)
star_y = random.randint(-230, 230)
ts.goto(star_x, star_y) # 먹이가 랜덤하게 옮김
if t.distance(te1) >= 12 or t.distance(te2) >= 12: # 거북이와 악당 거리가 12 이상이면
t.ontimer(play, 100) # 0.1초 후 play 함수 실행(계속 진행)
# 거리가 12 미만이면 게임 실행되지 않음
t.setup(500, 500)
t.bgcolor("orange")
t.shape("turtle")
t.speed(0)
t.up()
t.color("white")
t.onkeypress(turn_right, "Right")
t.onkeypress(turn_left, "Left")
t.onkeypress(turn_up, "Up")
t.onkeypress(turn_down, "Down")
t.listen()
play()
t.mainloop()
'과거 프로그래밍 자료들 > python' 카테고리의 다른 글
모두의 파이썬 - Day 16 거북이 대포 게임 만들기 (1) | 2022.09.14 |
---|---|
모두의 파이썬 - Day 15 타자 게임 만들기 (2) | 2022.09.13 |
모두의 파이썬 - Day 14 계산 맞히기 게임 만들기 (0) | 2022.09.13 |
[유투브]나도코딩 : 파이썬 코딩 무료 강의(기초편) 4 (0) | 2021.06.10 |
[유투브]나도코딩 : 파이썬 코딩 무료 강의(기초편) 3 (0) | 2021.06.09 |