본문 바로가기
반응형

알고리즘39

[게임 개발] 코드 리팩토링 + 데이터 저장 / 로드 안녕하세요! 오늘은 저번 글에 이어서 살짝 언급드린 코드 리팩토링한 부분에 대해 작성해볼까 합니다.추가적으로 전 글을 읽지 않으면 어떤 식으로 바꿨는지 알기 어려워 전 글을 읽어주시길 바랍니다. 1. 사각 타일 맵 기반 게임 기초 만들기 Link : https://88-it.tistory.com/4382. 자동 타일 맵 만들기 Link : https://88-it.tistory.com/439 리팩토링을 왜 갑자기 하게 되었나면 예전에 SOLID 객체지향적인 코드 작성에 대한 질문을 받은 적이 있습니다. 그때, 어떤 부분에 대해 어떻게 적용 시켰는데 경험을 들어 설명해달라고 했는데 제대로 설명하지 못했던 기억이 있습니다. 실제로 코드를 짤 때도 최대한 아는 선에서 분리하고 상속 등 활용하지만 인지하면서 구.. 2024. 12. 15.
[게임 개발] 사각 타일 맵 기반 게임 기초 만들기 안녕하세요! 오랜만에 글을 작성하게 되었는데 이번에는 타일 맵 기반 게임 만든 방법에 대해 작성 해볼까 합니다. 먼저, 이 게임을 만들게 된 계기는 퍼즐 게임을 만들고 싶었는데 완전 퍼즐은 아닌 긴박한 긴장감을 주는 게임을 만들고 싶었습니다. 그러다가 생각난 전에 플레이 했던 “Castle Crashers” 라는 게임 안에 미니 게임 형식으로 아래와 같은 게임이 있었습니다.  게임 방법은 간단합니다. 멀티 게임이긴 했지만 혼자 플레이하는 요소가 크고 사각 타일 맵에서 상하좌우 이동할 수 있는데 우리가 생각하는 이동키가 아닌 겁니다. 위에 사진 보시다 싶이 분홍색 플레이어 기준으로 오른쪽으로 갈려면 방향키 아래를 눌려야하는 거죠. 이런 식으로 순발력과 사고력이 필요한 게임이라고 볼 수 있습니다. 어떻게 보.. 2024. 12. 1.
[알고리즘/백준] 1309번 동물원 Python 파이썬 저번 문제는 혼자 힘으로 못 풀어서 글을 못 썼는데 이번 문제는 나름 풀고 성찰할 부분이 있어서 글을 적게 되었습니다. 이번 문제도 DP 문제입니다. 이번 문제는 2 X N 사자 우리가 주어지고 사자들을 배치할 때의 경우의 수를 9901로 나눈 나머지를 출력하는 문제입니다. 저번에 2133번 문제를 풀었는데 나름 방식이 유사한 문제인거 같습니다. 혹시 해당 문제를 푸셨다면 다음은 2133번을 풀어보는 것을 추천드립니다. 일단 풀이 과정으로는 몇가지의 경우의 수를 직접 그려보았습니다. 각 경우의 답에서 규칙성을 찾아보았을 때 DP[i] = DP[i-2] + (DP[i-1]*2) 식을 정의할 수 있습니다. 이를 적용해서 코드를 구현하였습니다.. 다음과 같은 코드로 통과하였습니다.. import sys inp.. 2023. 4. 24.
[알고리즘/백준] 11048번 이동하기 Python 파이썬 갈수록 DP에 대한 감을 잡아가고 있는 것 같습니다. 이번에도 DP 관련 문제입니다. 준규가 (1,1) 위치에서 (N, M) 위치까지 갈 때 최대로 얻을 수 있는 사탕의 갯수를 구하는 문제로 지도가 나오길래 BFS 문제인가 흠칫했습니다. DFS든 BFS든 여러 방법으로 풀 수 있는 문제같긴 했습니다. (궁금해서 찾아보니 BFS 로는 가능하고 DFS 경우 메모이제이션을 했다면 전에 값을 구한 적이 있을 때 바로 리턴하는 부분이 있어야 하는데 이 코드에서는 끝에 도달했을 때만 리턴을 할 뿐 메모한 부분을 활용하고 있어 의미가 없다고 하네요. 시간초과 날 경우도 높고) 일단 DP 문제로 들어온거라 DP 방식을 사용해서 풀어볼려고 시도해보았습니다. (BFS와 DP 문제 구분법 : BFS는 그래프에서 간선의 가중.. 2023. 4. 21.
반응형