두근두근 파이썬 수업 7장 프로젝트 I.

Slides:



Advertisements
Similar presentations
2. 미디어 쿼리 : 다양한 뷰포트의 지원 김은옥 1 학습목표 : 여기서는 미디어 쿼리 작성방법, 뷰포트 지정 방법 등 을 살펴본다.
Advertisements

Term project. Touch-screen 활용 그림판 –Touch-screen 을 입력장치로 하여 LCD 상에 그림을 그리는 프로그램 – 터치 입력을 절대 좌표로 받는 디바이스 /dev/touch 를 만들어 응용 프 로그램에서 수행하도록 함. –User interface.
관광 스마트 북 발행 제안 OSMD( One Source Multi Device ).
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
두근두근 파이썬 수업 7장 프로젝트 I.
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
이 자료는 확인 할 수 있습니다. Python Turtle with 함수 휘문고등학교 컴퓨터부 민경현 이 자료는 확인 할 수 있습니다.
순차, 조건, 반복 이점숙 농대 뒷편 언덕을 넘어가며 같은 문제 다르게 해결 순차, 조건, 반복 이점숙
순차, 조건, 반복 이점숙 같은 문제 다르게 해결하기 순차, 조건, 반복 이점숙
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
두근두근 파이썬 수업 4장 자료의 종류에는 어떤 것들이 있나요?.
게임 엔진 : 프로젝트 PPT_3 참참참 김 현 원.
두근두근 파이썬 수업 9장 리스트와 딕셔너리.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
10장 함수.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Raster 애니메이션은 GIF Animator로 만들면 쉽다
두근두근 파이썬 수업 13장 객체란 무엇인가요?.
두근두근 파이썬 수업 13장 객체란 무엇인가요?.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
2007 1학기 11 프로젝트 기초 실습.
두근두근 파이썬 수업 3장 계산해봅시다..
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
두근두근 파이썬 수업 7장 코드를 함수로 모아봅시다..
CHAP 12. 리소스와 보안.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
자바응용.
인터넷응용프로그래밍 JavaScript(Intro).
Chapter03 캔버스(1) HTML5 Programming.
두근두근 파이썬 수업 5장 조건을 따져봅시다..
10장 tkinter로 GUI 만들기.
Unity로 만드는 안드로이드 앱 유니티 프로젝트의 구성 Made by Karoid.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
WIN32 API 대전 TETRIS 시스템제어 허준호 박정욱 손경원 신동헌.
햄스터 미로찾기 광운대학교 로봇학부 박광현.
두근두근 파이썬 수업 2장 변수를 소개합니다..
Python Turtle 민경현.
인터넷응용프로그래밍 JavaScript(Intro).
2D Game Programming Project 1
아두이노 매트릭스 코딩 매트릭스 기본 명령어 실습 01차시 ㈜헬로앱스 김영준.
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
Tween Animation 천승현.
2D 게임프로그래밍 프로젝트 스틱 파이터 Stick Fighter 박하은.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
빌드 성공.
객체기반 SW설계 팀활동지 4.
파일 입출력과 그리기.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
3. 모듈 (5장. 모듈).
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
함수, 모듈.
2D 게임 프로그래밍 프로젝트 박태언.
7장 원운동과 중력의 법칙.
2D 게임 프로그래밍 제안서 김보명.
9 브라우저 객체 모델.
2D 게임프로그래밍 프로젝트 - Air Clear 심석용.
실습 UBLAB.
멀티미디어 활용 -플래시 CS3 류 정 남.
학번: 이름: 견정수 학번: 이름: 장성우 학번: 이름: 조재훈
김덕용 게임 엔진론 Project 2차발표.
프로그래밍 개론 Ⅰ-실습 2장 데이터와 식①.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
Presentation transcript:

두근두근 파이썬 수업 7장 프로젝트 I

이번 장에서 만들 프로그램 (1) 거북이 경주 게임을 작성해본다. 난수를 이용하여야 한다. (2) 간단한 애니메이션을 만들어본다

난수 발생하기 난수(random number)는 게임과 시뮬레이션에 필수적이 다. >>> import random >>> random.random() # 0.0부터 1.0보다 작은 실수 난수 0.8345121533431609 >>> random.randint(1, 100) # 1부터 100 사이의 정수 난수 49

리스트에서 랜덤하게 선택 >>> import random >>> random.choice('abcdefghij') # 하나의 랜덤한 항목 'c'

터틀 그래픽 함수들

거북이 경주 게임 #1 거북이 2마리를 만들려면 다음과 같이 한다. import turtle t1 = turtle.Turtle() # 첫 번째 거북이 t2 = turtle.Turtle() # 두 번째 거북이

거북이 경주 게임 #2 거북이들을 구별하기 위하여 색상을 다르게 하고 모양도 다르게 하자. t1.color("pink") 거북이들을 구별하기 위하여 색상을 다르게 하고 모양도 다르게 하자. t1.color("pink") t1.shape("turtle") t1.shapesize(5) t1.pensize(5) t2.color("blue") t2.shape("turtle") t2.pensize(5)

거북이 경주 게임 #3 출발점에 세우기 t1.penup() t1.goto(-300, 0) t2.penup() (0, -500)

거북이 경주 게임 #4 100번 정도 반복하면서 한 번 반복할 때마다 난수만큼 이 동하도록 하자. for i in range(100): # 100번 반복한다. d1 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. t1.forward(d1) # 난수만큼 이동한다. d2 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. t2.forward(d2) # 난수만큼 이동한다.

외부 이미지를 사용하자 import turtle # 터틀 그래픽 모듈을 불러온다. import random # 난수 모듈을 불러온다. screen = turtle.Screen() image1 = "d:\\rabbit.gif" image2 = "d:\\turtle.gif" screen.addshape(image1) screen.addshape(image2) t1 = turtle.Turtle() # 첫 번째 거북이를 생성한다. t1.shape(image1) t2 = turtle.Turtle() # 두 번째 거북이를 생성한다. t2.shape(image2)

전체 소스 import turtle # 터틀 그래픽 모듈을 불러온다. import random # 난수 모듈을 불러온다. screen = turtle.Screen() image1 = "d:\\rabbit.gif" image2 = "d:\\turtle.gif" screen.addshape(image1) screen.addshape(image2) t1 = turtle.Turtle() # 첫 번째 거북이를 생성한다. t1.shape(image1) t1.pensize(5) # 팬의 두께를 5로 한다. t1.penup() # 펜을 든다. t1.goto(-300, 0) # (-300, 0) 위치로 간다.

전체 소스 t2 = turtle.Turtle() # 두 번째 거북이를 생성한다. t2.shape(image2) t2.pensize(5) # 팬의 두께를 5로 한다. t2.penup() # 펜을 든다. t2.goto(-300, -200) # (-300, -100) 위치로 간다. t1.pendown() # 첫 번째 거북이의 펜을 내린다. t2.pendown() # 첫 번째 거북이의 펜을 내린다. t1.speed(1) t2.speed(1)

전체 소스 for i in range(100): # 100번 반복한다. d1 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. t1.forward(d1) # 난수만큼 이동한다. d2 = random.randint(1, 60) # 1부터 60 사이의 난수를 발생한다. t2.forward(d2)

애니메이션 만들기 애니메이션도 쉽게 제작할 수 있다. 다음과 같은 애니메 이션을 작성해보자. 여러분은 이 애니메이션을 자신의 홈 페이지에서 사용하거나 동영상 제작에도 사용할 수 있다.

태극 무늬 그리는 함수 def draw_shape(radius, color1): t.left(270) t.width(3) t.color("black", color1) t.begin_fill() t.circle(radius/2.0, -180) t.circle(radius, 180) t.left(180) t.circle(-radius/2.0, -180) t.end_fill()

태극 무늬 그리는 함수 t= turtle.Turtle() t.reset() draw_shape(200, "red") t.setheading(180) draw_shape(200, "blue")

애스터로이드 게임 우리의 우주선을 충돌시켜서 소행성을 파괴하는 게임인 애스터로이드를 제작하고자 한다. 우리의 우주선은 “거 북이“ 형태로 하자. 소행성은 ”원”으로 한다.

우리 우주선 만들기 import turtle import random import math player = turtle.Turtle() player.color("blue") player.shape("turtle") player.penup() player.speed(0) screen = player.getscreen()

소행성 만들기 a1 = turtle.Turtle() a1.color("red") a1.shape("circle") a1.penup() a1.speed(0) a1.goto(random.randint(-300, 300), random.randint(-300, 300)) a2 = turtle.Turtle() a2.color("red") a2.shape("circle") a2.penup() a2.speed(0) a2.goto(random.randint(-300, 300), random.randint(-300, 300))

이벤트 처리하기 def turnleft(): player.left(30) # 왼쪽으로 30도 회전한다. def turnright(): player.right(30) # 오른쪽으로 30도 회전한다. screen.onkeypress(turnleft, "Left") screen.onkeypress(turnright, "Right") screen.listen()

이동하기 def play(): player.forward(2) # 2픽셀 전진 a1.forward(2) screen.ontimer(play, 10) # 10ms가 지나면 play()를 다시 호출 screen.ontimer(play, 10)

앵그리 터틀 게임 만들기 앵그리 버드와 유사한 게임 “앵그리 터틀”을 제작하여 보 자. 공을 발사하여서 초기 속도와 초기 각도에 의하여 비 행하다가 목표물에 맞으면 성공이다.

많은 변수가 필요하다. int v; - 거북이의 속도이다. int vx; - 거북이의 x 방향 속도이다. int vy; - 거북이의 y 방향 속도이다. int x; - 거북이의 현재 x좌표이다. int y; - 거북이의 현재 y좌표이다.

다음과 같이 가정하자. vx; 초기 속도에서 변하지 않는다. vy; 초기 속도에서 중력 가속도 만큼 점점 느려진다. vy vx

vx, vy의 계산 vx = vx vy = vy - 10

초기 속도 vx = velocity * math.cos(angle * 3.14 / 180.0) vy = velocity * math.sin(angle * 3.14 / 180.0)

소스 코드 import turtle import math player = turtle.Turtle() player.shape("turtle") screen = player.getscreen() def turnleft(): player.left(5) # 왼쪽으로 5도 회전 def turnright(): player.right(5) # 오른쪽으로 5도 회전

소스 코드 def fire(): x = 0 y = 0 velocity = 50 # 초기 속도 50픽셀/sec angle = player.heading() # 초기 각도 vx = velocity * math.cos(angle * 3.14 / 180.0) # 도 -> 라디안 vy = velocity * math.sin(angle * 3.14 / 180.0) # 도 -> 라디안 while player.ycor() >= 0 : # y좌표가 음수가 될 때까지 vx = vx vy = vy - 10 x = x + vx y = y + vy player.goto(x, y) screen.onkeypress(turnleft, "Left") screen.onkeypress(turnright, "Right") screen.onkeypress(fire, "space") # 사용자가 스페이스키를 누르면 screen.listen()