개요현재 게임에 육각형 타일로 타일맵을 생성해야한다.따라서 직사각형 타일에서의 좌표계가 아닌 육각형에 맞는 좌표계로 맵을 생성해야한다.Hexagonal Grid에 대해 잘 정리해놓은 글이 있어서 해당 글에서 현재 프로젝트에 필요한 부분만 정리해보았다.https://www.redblobgames.com/grids/hexagons/ Red Blob Games: Hexagonal GridsAmit's guide to math, algorithms, and code for hexagonal gridswww.redblobgames.comGeometry정육각형을 배치하는 방법을 2가지이다. Flat-top orientationPointy-top orientation정육각형의 크기를 결정하는 방식도 2가지 이다.in..
개요c++로 알고리즘 문제를 풀 때 항상 문자열 관련 메소드가 헷갈려서 자주 쓰는 메소드만 정리해보았다.C++ String 문자열 부분 추출s.substr(int idx, int num) : idx부터 num길이만큼 문자열 추출문자열 부분 교체s.replace(int idx, int num, string ss) : idx부터 num길이만큼 ss로 교체문제열 검색s.find(string ss), s.find(string ss, int idx) : idx부터 ss가 있으면 해당 인덱스 반환 없다면 string::npos(-1) 반환string s = "hello";s += " world";cout C++ split substr과 find를 이용 vector split(string& s, string& se..
문제https://www.acmicpc.net/problem/15683시뮬레이션 문제2차원 맵에 카메라와 벽이 배치되어있고 사각지대의 최소값을 구하는 문제이다.여러 개의 카메라가 있고 각 카메라는 방향에 따라 감시하는 영역이 달라진다.따라서 k번째 카메라의 방향을 정하는 것을 하나의 step으로 생각해 백트래킹을 적용하였다.각 스탭마다 카메라 방향을 선택해 카메라 방향선택에 대한 모든 경우의 수를 계산해본다. 풀이구현이 복잡하므로 구현에 대해 자세히 설명하겠다.필요한 정보들int n, m, cn, bn; // n, m: 맵 크기 cn, bn : 카메라 개수, 감사가능한 영역 수int c_max = 0; //최대로 감시할 수 있는 영역의 수int dirX[] = {-1, 0, 1, 0}; //X방향으로..
개요카드게임 프로젝트를 진행하며 같이 작업하는 개발자분과 비대면으로만 진행상황을 공유하다보니 칸반보드같은 문서가 필요하다고 느꼈다.하지만 따로 칸반보드를 만들어서 관리하자니 개발하고 칸반보드도 따로 관리하다 보면 제대로 활용할 수 있을지 일을 더 늘리는 아닌지 고민하던 차에....GitHub에서 Issue를 기반으로 자동으로 칸반보드를 관리할 수 있다는 것을 보고 이번 프로젝트에 적용해보기로 했다.기본적인 틀Issue 기반이 방식을 기본적으로 Issue를 기반으로 모든 작업을 진행한다.Issue를 먼저 작성하고 Issue를 기반으로 Branch를 생성하고 Issue에 해당하는 기능을 모두 구현하고 나면 PR을 보낸다.따라서 칸반보드에 구성요소도 모두 Issue단위로 존재한다.칸반보드 자동 관리Issue에..
개요하스스톤의 경우 매칭이 잡히면 멀리건(첫 손패)를 선택하고 시작한다.이때 손패를 바꾼경우 상대 플레이어의 멀리건이 끝날때까지 기다려야하고 선택을 하지 않았더라도 제한 시간이 지나면 자동으로 손패가 확정되고 게임이 시작된다.Class Diagram현재 게임은 GameSetPhase 단계에서 자신의 Relic과 TacticalSkill을 선택하고 이후 멀리건을 선택하고 다음 Phase로 넘어간다.간단하게 GameFlow를 보면GameSetPhase 시작 -> SelectRelicAndTaticalSkill UI 띄움 -> 선택 완료 후 상대방 기다림 or 시간제한 후 자동 선택 -> 멀리건 UI -> 선택 완료 후 상대방 기다림 or 시간제한 후 자동 선택 -> TurnStart Phase 시작이때 Wi..
개요이번에 구현할 것은 NPC와 대화하는 기능이다.기능 구현 목록NPC에게 다가가면 상호작용 활성화대화 시작 시NPC 대화용 카메라 시점으로 변경대화 UI 활성화Class Diagram기능 구현에 앞서 연관된 Class들이 많아서 Class Diagram을 먼저 작성하였다.UIDialog를 띄울 Widget은 현재 말하는 대상이 누구인지 대화 내용은 무엇인지만 Text로 표시한다.해당 Widget은 HUD에서 Create하고 변수로 관리한다.HUD에서는 다음 기능을 구현한다.Dialog 띄우기Dialog 닫기Dialog가 열려있는지 확인Dialog 내용 업데이트하기PlayerPlayer 캐릭터는 키보드 E키를 눌렀을 때 상대와 상호작용 가능하도록 해야한다.character blueprint에 EventD..