
[WinAPI 일주일 모작] 모모도라 3 - 0일차
2020. 7. 5. 14:03
프로젝트/모모도라3 모작(일주일)
https://www.youtube.com/watch?v=1j-odjPa-Zk 맨 처음에는 문라이터를 생각했었는데, 전투만 구현하는 것도 생각보다 어려워 보여서... 조금 더 단순해 보이는 게임을 찾다가 이 모모도라 시리즈를 발견하게 되었다. 구매해서 실제로 플레이해 보니 생각보다 재미있었고, 보스도 패턴은 단순하지만 다양해서 일주일 모작 프로젝트에 적합하다는 생각이 들었다. 진짜 게임 같은 게임은 처음 만들어 보는 거라서 두근대기도 하고, 내가 잘할 수 있을지 걱정도 된다. 구현 범위는 일반 맵 두 가지, 일반 맵과 보스 맵을 잇는 맵, 보스 맵 세 가지 정도이다. (시간이 남으면 일반 맵과 보스를 하나씩 더 추가하고 싶긴 한데, 어떻게 될지는 아직 잘 모르겠다.) 현재 프로토타입으로 진행해 놓은 코드..

[C++, WinAPI] 너구리 게임
2020. 6. 16. 20:12
프로젝트/게임 로직 구현
플레이어는 좌우로 움직일 수 있고, 사다리 범위 내에서는 상하로 이동할 수 있다. 스페이스 키를 누르면 바라보고 있는 방향으로 점프한다. 몬스터 또는 장애물과 닿았을 때, 그리고 점프하지 못한 경우에 게임 오버 처리하며, 사다리와 몬스터, 장애물, 과일은 랜덤하게 배치된다. 게임 오버 되지 않고 모든 과일을 다 먹으면 게임을 종료한다. youtu.be/hbKMTk90sko

[C++, WinAPI] 클레이 사격
2020. 6. 15. 21:37
프로젝트/게임 로직 구현
화면 양쪽에서 접시가 날라오고, 중앙에 위치한 두 개의 조준점은 해당 접시를 따라서 상하로 이동한다. 플레이어는 타이밍에 맞춰서 키보드의 좌,우 버튼을 누른다. 접시의 패턴은 우측 상단, 우측 하단, 좌측 상단, 좌측 하단으로 이루어져 있으며, 원활한 플레이를 위하여 랜덤으로 호출하되 확률을 지정하여 우측에서의 출현률을 높였다. 사격 실패했을 경우, 일정 시간 동안 사격을 할 수 없게 재장전 기능을 추가하였다. https://youtu.be/5DHTDYhlmbs

[알고리즘 문제] 15. 소수의 개수
2020. 6. 11. 20:52
문제 풀이/알고리즘 문제풀이
#include using namespace std; int main() { int n, i, j, cnt = 0; cin >> n; for (i = 2; i < n; ++i) { bool b = true; for (j = 2; j

[TIL] 2020-06-10
2020. 6. 10. 21:32
TIL(Today I Learned)
각도 개념에 대한 이해가 부족한 것 같아서 자괴감이 드는 오전이었다. 굳이 다른 사람들이랑 비교할 필요는 없는데 자꾸 조바심을 내게 된다. 😐 때문에 복습도 할 겸, 아무런 레퍼런스 없이 혼자서 코딩을 진행해 보았다. youtu.be/-aCNCvexdfQ YouTube www.youtube.com Angle 계산 보기 편안하게끔 대칭이동(?)한 X축에 접근하고, sin의 부호를 바꿔 준다. void playGround::update() { gameNode::update(); if (KEYMANAGER->isStayKeyDown(VK_RIGHT)) _angle -= 0.04f; if (KEYMANAGER->isStayKeyDown(VK_LEFT)) _angle += 0.04f; // ... _destX =..

[C++, WinAPI] 탱크대전(vs 초급 AI)
2020. 6. 9. 20:20
프로젝트/게임 로직 구현
사용자 플레이어의 조작에 따라서 발사할 위치를 확인할 수 있는 포물선을 그리고, 스페이스 바를 누르면 해당 위치로 총알을 발사한다. 컴퓨터 플레이어는 총알이 근접해 오면 피하고, 일정 시간마다 사용자 플레이어의 위치에 맞게끔 총알을 발사한다. 컴퓨터 플레이어는 일정 체력 이하가 되었을 때 사용자 플레이어의 위치를 체크하고, 해당 위치로 향하는 강력한 유도탄을 발사한다. youtu.be/4yzd0GrD5XU

[알고리즘 문제] 14. 뒤집은 소수
2020. 6. 8. 21:40
문제 풀이/알고리즘 문제풀이
#include using namespace std; int reverse(int x) { int res = 0, tmp; while (x > 0) { tmp = x % 10; res = res * 10 + tmp; x = x / 10; } return res; } bool isPrime(int x) { int i; if (x == 1) return false; for (i = 2; i > n; for (i = 0; i > num; temp = reverse(num); if (isPrime(temp)) cout

[알고리즘 문제] 13. 가장 많이 사용된 자릿수
2020. 6. 7. 15:25
문제 풀이/알고리즘 문제풀이
#include using namespace std; int main() { int ch[10]; int i, max = -2147000000, res = -1; char a[101]; cin >> a; for (int i = 0; a[i] != '\0'; ++i) { int idx = a[i] - 48; ch[idx]++; if (ch[idx] == max && idx > res) res = idx; else if (ch[idx] > max) { res = idx; max = ch[idx]; } } /* for (int i = 0; i max) { max = ch[i]; res = i; } }*/ cout

[알고리즘 문제] 12. 숫자의 총 개수(large)
2020. 6. 6. 14:51
카테고리 없음
#include using namespace std; int main() { int n, sum = 0, c = 1, d = 9, res = 0; cin >> n; while (sum + d < n) { res = res + (c * d); sum = sum + d; c++; d = d * 10; } res = res + ((n - sum) * c); cout

[알고리즘 문제] 11. 숫자의 총 개수(small)
2020. 6. 5. 21:25
문제 풀이/알고리즘 문제풀이
#include using namespace std; int main() { int n, i, count = 0, tmp; cin >> n; for (int i = 1; i 0) { tmp /= 10; count++; } } cout

[알고리즘 문제] 10. 자릿수의 합
2020. 6. 3. 21:16
문제 풀이/알고리즘 문제풀이
#include using namespace std; int digit_sum(int x) { int sum = 0; for (int i = 1; i > n; for (i = 0; i > a[i]; for (i = 0; i max || (t == max && a[i] > max_n)) { max = t; max_n = a[i]; } } cout > n; for (i = 0; i > num; sum = digit_sum(num); if (sum > max) { max = sum; res = num; } else if (sum == max) res = num > res ?..

[알고리즘 문제] 09. 모두의 약수
2020. 6. 2. 21:39
문제 풀이/알고리즘 문제풀이
#include using namespace std; int main() { int num, i, j; cin >> num; for (i = 1; i

[알고리즘 문제] 08. 올바른 괄호
2020. 6. 1. 20:45
문제 풀이/알고리즘 문제풀이
#include using namespace std; bool check(char * c) { int count = 0; for (int i = 0; c[i] != '\0'; ++i) { if (c[0] == ')' || (c[i+1] == '\0' && c[i] == '(')) return false; if (c[i] == '(') count++; else if (c[i] == ')') count--; } if (count == 0) return true; return false; } int main() { char c[31]; cin >> c; cout
[WinAPI] 2D 게임 제작 (1) 기본 윈도우 창 - 1
2020. 5. 31. 18:27
WinAPI
각 플랫폼(Windows, Mac, Android 등)마다 맞는 함수들을 제공해 준다. => API(Application Programming Interface) winAPI란 Windows를 이용하기 위한 무수히 많은 함수의 집합이다. windows.h: 윈도우 창에서 무언가를 출력하는 등 윈도우 창을 컨트롤할 수 있는 함수들을 제공 wWinMain: win32의 진입점 함수(메인 함수) int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { //... } APIENTRY: __stdcall(함수 호출 규약) HINSTANCE: H -..

[알고리즘 문제] 07. 영어단어 복구
2020. 5. 30. 21:39
문제 풀이/알고리즘 문제풀이
#include #include using namespace std; int main() { int i; char c[101]; gets_s(c); for (i = 0; c[i] != '\0'; i++) { if (c[i] == ' ') continue; if (c[i] >= 65 && c[i]

[알고리즘 문제] 06. 숫자만 추출
2020. 5. 29. 16:07
문제 풀이/알고리즘 문제풀이
#include #include using namespace std; int main() { char c[51]; int i, idx = 0, num = 0, cnt = 0; int n[8]{ 0 }; cin >> c; for (i = 0; i = 48 && c[i]
[TIL] 2020-05-28
2020. 5. 28. 21:10
TIL(Today I Learned)
1. 마우스 입력받기 POINT _ptMouse; LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDChdc;//Device Context switch (iMessage) { case WM_CREATE: { } break; // 마우스를 움직일 때 case WM_MOUSEMOVE: { // 마우스의 좌표를 받아서 POINT에 저장 _ptMouse.x = LOWORD(lParam); _ptMouse.y = HIWORD(lParam); InvalidateRect(hWnd, NULL, true); } break; // 마우스 왼쪽을 누를 때 case WM_LBUTTONDOWN: {..

[C++] 전방 선언에 관하여
2020. 5. 26. 22:43
C++/공부
전방 선언: 선 실행 후 연결 전방 선언은 불필요한 헤더 파일이 복잡하게 포함되는 것을 방지하여, 결과적으로는 컴파일 속도를 향상시킵니다. 객체 수가 많다는 가정하에 빌드 속도 차이가 확연하게 납니다. 예제와 함께 알아보기 예를 들어 클래스 A를 지갑, 클래스 B를 통장이라고 했을 때, 클래스 AB는 지갑과 통장에 모두 접근할 수 있는 클래스입니다. 따라서 지갑에 있는 돈을 꺼내어 사용하기도 하고, 통장에 있는 돈을 꺼내서 지갑에 넣기도(또는 그 반대) 하겠죠? 아무런 기능도 하지 않는 클래스들을 만들어, 예시와 함께 보겠습니다. AB.h #pragma once #include "A.h" #include "B.h" class AB { }; A.h #pragma once class A { }; B.h #p..