https://github.com/JunHwaPark/SFMLFortress 깃허브 원격저장소를 삭제했습니다. 코드가 어디갔는지 모르겠습니다.. 컴퓨터 바꾸면서 유실된 듯.. 프로젝트 2때와 달리 중력을 define으로 정의했습니다. 또한, 실행 시 바로 srand를 이용하여 난수를 발생시키고, 보통의 파워로 진행할지, 아니면 1.5배 강한 파워로 진행하는 파워모드를 진행할지 선택하도록 했습니다. 대, 소문자 N, P가 아닌 다른 입력을 받으면 3초 후 프로그램이 종료됩니다. (추가기능) 실행 직후 텍스쳐 및 변수 초기화 과정입니다. 게임 제어에 사용된 변수들입니다. 역시 마찬가지로 실행 초반에 초기화가 이루어집니다. 반복문에 들어간 후, 제일 먼저 하는 일은 프로젝트 2에서와 마찬가지로 카운트를 시작하..
https://github.com/JunHwaPark/SFMLFortress깃허브 원격저장소를 삭제했습니다. 필요하신 분은 메일을 보내주세요.wnsghk1025@naver.com 1. 코드 설명먼저 이 프로그램을 만들면서 사용한 텍스처와 스프라이트에 대해서 간략하게 설명하겠습니다. 나눠주신 이미지 파일들을 이용하여 탱크, 배경화면, 상태 창, HP및 파워 게이지, 포탄에 대한 텍스처와 스프라이트를 선언했고, 탱크와 HP및 파워 게이지는 한 개의 텍스처에 각각 두 개의 스프라이트를 세팅했습니다. 다음으로는 사용한 변수에 대해 설명하겠습니다. 위 캡처화면에 모두 설명이 되어있는대로, 정수형 변수인 turn은 턴 구분을 위한 변수, dir1,2는 1플레이어와 2플레이어 각각의 탱크가 바라보는 방향을 판단하기 ..
먼저 가상 함수에 대해 알아보자. 가상 함수는 포인터 변수의 자료형에 따라서 호출되는 함수의 종류가 달라지기 때문에 실제로 가리키는 객체에 있는 함수가 아닌 엉뚱한 함수를 호출하는 문제를 방지하기 위해 사용하는 개념이다. 윤성우의 열혈C++의 예제를 예로 들어보자. ‘정규직에는 사무직과 영업직이 있고, 영업직은 사무직과 똑같이 정해진 월 급여를 받지만, 거기에 추가로 판매실적에 대한 상여금을 받는다. 따라서 정규직은 영업직의 부모 클래스이고, 사무직은 특별한 점이 없기 때문에 따로 구분하지 않는다. 하지만 회사의 급여지급 프로그램에서는 일괄적으로 PermanentWorker클래스(정규직 클래스)의 GetPay함수를 사용하기 때문에 영업직의 판매 실적에 따른 상여금이 반영되지 않는다.’ 이러한 문제를 해결..
상속을 사용하는 가장 큰 이유는 이전 글 (죽음의 다이아몬드)에서 설명했듯이 프로그램의 확장성을 위한 것이다. 이를 위해서 부모클래스에서는 최대한 모든 객체가 가지는 특성을 가지고, 자식 클래스로 내려갈수록 점점 그 객체들만 가지는 특성을 가지게 된다. 하지만 여기서 문제가 생긴다. ‘최상위 부모 객체’는 그저 기초 클래스의 의미만 가질 뿐, 객체의 생성을 목적으로 정의된 클래스가 아니라는 점이다. 예를 들어, ‘사람’이라는 클래스가 있고, 그 클래스는 이름과 나이라는 변수를 지닌다. 이는 최상위 부모 객체가 된다. 그 자식 객체는 직업이 없는 사람들과 학생, 또 직장인으로 나눠질 수 있다. 또 여기서 학생은 초, 중, 고, 전문대, 4년제, 대학원 등 여러 자식 객체로 나눠질 수 있지만 그 이야기를 하..
상속은 객체지향 언어에서 매우 중요한 역할을 한다. 객체지향 프로그래밍의 주요 3요소가 ‘상속’, ‘캡슐화’, ‘다형성’이라는 말까지 있을 정도이니 말이다. 상속은 사용하던 프로그램이 환경이나 다른 문제에 의해 사용하기 까다로운 상황이 되었을 때 프로그램 수정을 간단하게 하기 위해 사용한다. 보통 상속의 객체는 ‘부모 객체’와 ‘자식 객체’로 나뉘는데, 직관적으로 생각해도 ‘부모’가 자식을 여러 명 낳는 것은 문제가 되지 않지만, ‘자식’이 부모를 둘, 셋 이상 가지는 것은 이상하다고 생각된다.(한 ‘부모 객체’가 아버지와 어머니를 모두 포함한다고 했을 때를 가정.) 하지만 그런 일이 현실에서도 아예 없는 것은 아니고, 역시 프로그래밍에서도 (특히 C++에서) 이것을 허용하며 이를 ‘다중 상속’이라고 한..
- Total
- Today
- Yesterday
- 알고리즘
- 인공지능
- 카카오
- 구현
- DFS
- 코딩
- BaekJoon
- 백트래킹
- 이분탐색
- webOS
- c
- LG
- 1932
- 동적 계획법
- c++
- 브루트포스
- Dynamic Programming
- 완전탐색
- DP
- 컨트리뷰톤
- 오픈소스
- 프로그래머스
- 정렬
- PyPy3
- 백준
- 플로이드 와셜
- 파이썬
- 한화큐셀
- BFS
- 피보나치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |