728x90
Key이벤트 연결하여, 캐릭터 움직임 구현하기 import pygame pygame.init() #초기화 (반드시 필요) #화면 크기 설정 screen_width = 480 #가로 크기 screen_height = 640 #세로 크기 screen = pygame.display.set_mode((screen_width, screen_height)) #화면 타이틀 설정 pygame.display.set_caption("YongJu Game ") #게임이름 #FPS clock = pygame.time.Clock() #배경 이미지 불러오기 background = pygame.image.load("C:\\Users\\LG\\OneDrive\\바탕 화면\\pygame\\pygame_myGame\\background..
2) 내가 지정한 이미지로 frame 설정할 수도 있고, 직접 색을 rgb 값을 줘서 지정할 수도 있다. import pygame pygame.init() #초기화 (반드시 필요) #화면 크기 설정 screen_width = 480 #가로 크기 screen_height = 640 #세로 크기 screen = pygame.display.set_mode((screen_width, screen_height)) #화면 타이틀 설정 pygame.display.set_caption("YongJu Game ") #게임이름 #배경 이미지 불러오기 background = pygame.image.load("C:\\Users\\LG\\OneDrive\\바탕 화면\\나도코딩\\pygame_basic\\background.pn..
1) 파이썬 GUI 윈도우 규격 만들기 : 규격은 480 X 640 크기이다. import pygame pygame.init() #초기화 (반드시 필요) #화면 크기 설정 screen_width = 480 #가로 크기 screen_height = 640 #세로 크기 screen = pygame.display.set_mode((screen_width, screen_height)) #화면 타이틀 설정 pygame.display.set_caption("YongJu Game ") #게임이름 # 이벤트 루프 running = True #게임이 진행 중 ? while running: for event in pygame.event.get(): # 어떤 이벤트가 발생하였는가 ? if event.type == pygam..
[전체 게임 기획/설계] [게임 실행 영상] 스도쿠게임_실행영상 [게임 개발 설명] [Main] -주된 UI를 제공하는 MainFrmae객체를 생성. Main public class Main { public static final int SCREEN_WIDTH = 800; public static final int SCREEN_HEIGHT = 600; public static void main(String[] args) { new MainFrame(); } } [MainFrame 클래스] -게임 UI의 주된 컴포넌트 처리를 이 안에서 해결했다. 동적인 화면 전환을 위해 여러 가지 Panel을 사용하고 boolean 변수로 현재의 screenImage를 컨트롤했다. MainFrame 클래스 public c..
selfStudy9-3.py ## 함수 정의 부분 ## def para_func(v1, v2, v3=0, v4=0, v5=0, v6=0, v7=0, v8=0, v9=0, v10=0) : result = 0 result = v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10 return result ## 변수 선언 부분 ## hap = 0 ## 메인 코드 부분 ## hap = para_func(10, 20) print("매개변수가 2개인 함수를 호출한 결과 ==> %d" % hap) hap = para_func(10, 20, 30, 40, 50, 60, 70, 80, 90, 100) print("매개변수가 10개인 함수를 호출한 결과 ==> %d" % hap) 9장 심화..
SelfStudy6-6.py ch = "" a, b = 0, 0 while True : a = int(input("계산할 첫 번째 수를 입력하세요 : ")) b = int(input("계산할 두 번째 수를 입력하세요 : ")) ch = input("계산할 연산자를 입력하세요 : ") if (ch == "+") : print("%d + %d = %d입니다." % (a, b, a + b)) elif (ch == "-") : print("%d - %d = %d입니다." % (a, b, a - b)) elif (ch == "*") : print("%d * %d = %d입니다." % (a, b, a * b)) elif (ch == "/") : print("%d / %d = %5.2f입니다." % (a, b, a ..
연습문제 2장 8번 import turtle import random def ScreenLeftClick(x,y): global r,g,b tSize = random.randrange(1, 10) turtle.shapesize(tSize) tAngle = random.randrange(0,360) turtle.left(tAngle) turtle.color((r,g,b)) turtle.penup() turtle.goto(x,y) turtle.stamp() r = random.random() g = random.random() b = random.random() pSize = 10 r, g, b = 0.0, 0.0, 0.0 turtle.title('거북이 도장 찍기') turtle.shape('turtle'..
ch11. 포인터 11.1 포인터 포인터 : 메모리 주소를 갖는 변수 주소연산자 : 해당 변수이름의 주소를 반환 [포인터의 선언] -포인터: 변수의 주소를 가지는 변수 int *p; 11.2 간점참조연산자 -포인터를 통해 메모리를 다시 간접 참조 -포인터가 지칭하는 변수 주소 속의 값을 사용 간으 -포인터 이용하면 변수를 간접 참조 가능 cf. 직접 참조 : 변수의 이름으로 접근하여 변수 값 참조 간접 참조 : 포인터 이용하여 변수 값 참조 -메모리 주소 byte단위 주소 : %u (부호없는 10진ㄴ수) 포인터 주소 :%p (16진수) 11.3 포인터 사용 주의점 [초기화하지 않고 사용 시] -쓰레기값 가지게 됨 -컴파일 시 체크안됨 -NULL로 초기화해둘 것 ! [포인터 타입과 지칭하는 변수의 타입 반..
ch10. 배열 -배열 : 같은 종류의 대량 데이터들 여러 개 저장하는 저장장소 [배열 특징] -메모리의 연속적인 공간에 저장됨 -인덱스로 각 요소에 차례로 접근하여 처리 가능 [배열 선언] -int 배열명[크기]; //배열 크기는 정수형 상수만 사용 가능 (변수 사용 불가) //전처리기로 정의해둔 기호상수까지는 사용 가능 [배열 요소 접근] -각각의 배열 요소 한 개 = 변수 1개 인덱스로 접근하여 각 배열 요소에 값을 저장, 요소에 저장된 값을 꺼내올 수도 있음 [배열과 반복문] for문으로 배열 처리 효과적 [인덱스 범위] -배열 인덱스 범위 초과하여 접근 시 쓰레기값 출력 (컴파일 시에는 오류 체크 X) -배열 인덱스 범위 초과하는 인덱스에 값을 저장할 경우 중단될 수 있음 -엉뚱한 메모리 위치로..
ch09. 함수와 변수 9.1 변수의 속성 [변수의 속성] (3가지) -유효범위 : 변수 참조(사용) 가능 범위, 변수가 정의되는 위치에 따라 달라짐 -생존기간 : 메모리에 존재 시간 -연결 : 다른 영역에 있는 변수와의 연결 [지역변수와 전역변수] : 변수가 선언되는 위치에 따른 분류 -지역변수 : 블록 내부에서 정의 -전역변수 : 블록 외부에서 정의 9.2 지역변수 -지역변수 : 블록 내부에서 정의됨 : 선언된 블록 안에서만 접근과 사용 가능 [지역변수 선언위치] -블록의 맨 첫 부부에서 정의 (최근에는 블록 안이면 어디든지 선언 가능) [이름이 같은 지역변수] -지역변수는 기본적으로 선언된 블록 안에서만 유효하므로 선언되어있는 지역만 다르다면 동일한 이름의 변수가 또 존재해도 문제 발생 X [지역변..
BFS : 너비우선탐색 DFS : 깊이우선탐색 [게임 구조 설명] # :벽을 의미 E :적 P :플레이어 bfs_map[][] step1) 0 1 2 3 4 5 6 : X 0 # # # 1 # # # # 2 # # P 3 # E # 4 # # 5 # # 6 # # Y X, Y E 적 위치 = (2, 3) P 내 위치 = (4, 2) step 2) 부모 인덱스 번호 = -1 (초기값) step 3) bfs_list --> [0] (2, 3, -1) //적의 위치를 시작 위치로 [0] 0 1 2 3 4 5 6 : X 0 # # # 1 # # # # 2 # # P 3 # [0] # 4 # # 5 # # 6 # # bfs_list ---> [0] (2, 3, -1) //적 E 위치 (0)기준 -> [1] (2,..
-오버로딩 (중복 함수) -> 함수이름과 기능은 같지만 매개변수 자료형만 다른 여러 개의 함수들을 정의하는 것 -오버라이딩 (함수 재정의) -> 상속받은 멤버함수를 자식클래스 입맛에 맞춰 재정의한 함수 [템플릿 함수] -함수를 찍어내기 위한 형틀 -> 함수이름과 기능은 같지만 매개변수 자료형을 다르게 받고 싶을 때, 여러 개의 함수를 만들지 않고, 하나의 함수틀을 정의하여 (원하는 타입 인수 호출하면 ‘템플릿 함수’ 가 T를 인수 타입에 맞춰 치환되어 함수 기능 사용을 자유롭게 할 수 있도록 만든 것) template //T 가 타입 이름으로 사용된다는 것을 컴파일러에게 알려주기 위한 문장 (없으면 컴파일오류) T get_max(T x, T y) { } -> 실제 함수를 정의해준 것X -> 함수 생성틀만..
[클래스 상속] : inheritance : 클래스 상속은 이미 정의되어있는 부모 클래스의 멤버 변수, 멤버 함수들을 물려 받아서 상속받은 자식 클래스에서eh 그대로 사용 가능하도록 만들어진 기능이다. -자식 클래스에서는 부모 클래스 속 public, protected로 선언된 멤버들을 사용O private 로 선언된 멤버는 사용 X class 자식클래스이름 : public 부모클래스이름 { private: //멤버변수 선언 public: //멤버함수 선언 }; [상속, 생성자] -기본적으로 (부모 생성자 -> 자식 생성자 -> 자식 소멸자 -> 부모 소멸자) 순으로 호출된다. -특별히 부모 생성자 지정X -> 부모의 기본생성자가 가장 먼저 자동 호출된다. -특별히 부모 생성자 지정O -> 자식 생성자 ..