4월, 2019의 게시물 표시

파이썬 예제 (슈팅게임)

이미지
이번에 만든 주제는 파이썬 + PyQt5로 구현한 슈팅게임(Shooting Game) 입니다.   주요 기능으로, 1. 키보드를 이용한 아군 이동 2. 적군 랜덤 생성 및 이동 3. 적군 아군 충돌 감지 4. 적군 아군 총알 충돌 감지 이 코드를 이해하기 위해 필요한  사전 지식 입니다. 1. 파이썬 자료형 (정수, 문자, 리스트)  2. 파이썬 모듈 (C++의 #include와 유사)  3. 파이썬 클래스 (상속, 객체변수, 생성자) 및 쓰레드, 동기화  4. PyQt5 클래스 이해 (QPoint, QRect, QWidget, QPainter, QLayoutBox 등) PyQt5 설치 및 소개 링크   소스코드 전체 프로그램 소스는 크게 3개의 파이썬 파일(모듈)로 이루어져 있습니다. 1. map.py (아군, 적군 클래스 및 게임을 진행하는 CMap클래스로 구성)  아래는 map.py 파일의 전체 소스코드 입니다. from PyQt5.QtCore import * from PyQt5.QtGui import * from random import * import os import threading import time class CUnit: size = 10 def __init__(self): self.rect = QRect() self.color = QColor(0,0,0) class CMy(CUnit): def __init__(self): super().__init__() self.hp = 10 self.color.setRgb(0,0,255,255) self.bullet = [] class CEnemy(CUnit): def __init__(self): super().__init__()

파이썬 예제 (타자연습게임)

이미지
이번에 만든 주제는 파이썬 타자연습게임(Typing Game) 입니다. 주요 기능 은 아래와 같습니다. 1. 한글, 영어 선택 기능 2. 난이도 선택 기능 (초, 중, 고급) 이 코드를 이해하기 위해 필요한 사전 지식 입니다. 1. 파이썬 자료형 (정수, 문자, 튜플, 리스트) 2. 파이썬 모듈 (C++의 #include와 유사) 3. 파이썬 클래스 (상속, 객체변수, 생성자) 및 쓰레드, 동기화 4. PyQt5 클래스 이해 (QPoint, QRect, QWidget, QPainter, QLayoutBox 등) 전체 프로그램 소스는 크게 3개의 모듈로 구성되어 있습니다. 1. map.py (단어 클래스 및 게임 진행 클래스로 구성) from PyQt5.QtCore import QPointF, QRect from PyQt5.QtGui import QFont from threading import Thread, Lock from random import randint from time import sleep # 튜플 단어장 kor = ('문자열', '정수', '리스트', '튜플', '딕셔너리', '타입', '출력', '반복문', '변수', '파이썬') eng = ('input', 'int', 'string', 'type', 'list', 'class', 'print', 'python', 'tuple', 'for', 'if', 'while', 'thread', 'random&#

파이썬 예제 (디지털 시계)

이미지
이번에 만든 주제는 디지털 시계입니다. [파이썬 + PyQt5 디지털 시계] 아날로그 시계는 C++과 MFC를 이용해 만든 예제 가 이미 홈페이지에 소개되어 있지만 삼각함수가 필요하므로 중학교 3학년 이상에게 만들어 볼 것을 권장하고 있습니다. [C++, MFC 아날로그 시계] 왜냐하면 시계 외곽선 원의 좌표를 삼각함수를 이용해 찾아내서 선을 그려야 하기 때문이죠. 오늘은 쉬운 디지털 시계를 파이썬 + PyQt5를 이용해 만들어 보겠습니다. 난이도는 매우 쉬운편입니다. 우리는 객체지향프로그래밍 언어인 파이썬을 쓰고 있으므로 클래스 기반으로 만들어 보았습니다. 먼저 전체 코드를 한번 살펴 보겠습니다. import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from threading import Timer import time QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) class CWidget(QWidget): def __init__(self): super().__init__() self.year = QLCDNumber(self) self.month = QLCDNumber(self) self.day = QLCDNumber(self) self.hour = QLCDNumber(self) self.min = QLCDNumber(self) self.sec = QLCDNumber(

파이썬 예제 (그림판)

이미지
이번에 만들어 본 예제는 Python + PyQt5 를 이용한 그림판 (Painter)  입니다. 주요 기능 은 1. 직선, 곡선, 사각형, 원 그리기 2. 선색, 도형 내부 색 변경 가능 3. 지우개 기능 정도 입니다. 주석 포함 300라인이 채 안되는 코드로 최대한 간단히 구현해 보았습니다. 구글을 열심히 검색해봐도 파이썬+PyQt를 이용한 그림판 예제는 거의 없어 직접 만들어 보았습니다. 먼저 이 코드를 이해하기 위해 요구되는 배경 지식 입니다. 1. Python 의 기본 자료형 (정수, 문자, 리스트) 2. Python 클래스의 이해 (클래스의 개념,  객체 변수, 함수, 상속) 3. PyQt5, 특히 Qt 클래스에 대한 사용법, 이해 정도 입니다. (가장 중요) PyQt5 설치 및 소개글 링크 PyQt5는 C++의 크로스 플랫폼 프레임워크인 Qt 를 파이썬에 사용가능하도록 만든 파이썬 패키지 입니다. PyQt는 Riverbankcomputing 이라는 영국회사에서 만들었습니다. Qt는 C++기반의 멋진 클래스들을 가진 GUI 프레임워크이며, GUI 이외에도 자료형, 네트워크, 3D, 등의 분야에 사용가능한 클래스를 제공해 줍니다. 아래 예제의 Q로 시작하는 모든 타입은 Qt에서 제공되는 클래스입니다. 앞으로 우리는 Qt에서 제공하는 클래스를 가져와 사용하는 방식으로 코드를 만들어 갈 계획입니다. 그럼 본론으로 들어가 보겠습니다. 그림판은 크게 2개의 클래스로 구성되어 있으며, 첫번째는 메인 윈도우 창을 구성하는 CWidget클래스, 두번째는 그림을 표시하는 CView 클래스 입니다. 그리고 클래스를 인스턴스화 시켜 동작하는 메인 함수의 형태로 코드는 구성되어 있습니다. 먼저, 아래는 그림판 전체 코드 입니다. [전체 코드] import sys from PyQt5.QtCore import * from

이 블로그의 인기 게시물

Qt Designer 설치하기

C++ 예제 (소켓 서버, 이미지, 파일전송)