본문 바로가기

전체 글64

[파이썬]10997:별 찍기 - 22 문제 링크 요약 문제 난이도: 3/10(실버 2) 문제 타입: 재귀 특이 사항: 낚시성 케이스 존재 개요 알고리즘 문제에서 가장 잘 알려진 형태인 별을 출력하는 문제입니다. N번째에 출력할 형태는 N-1번째 출력을 포함하고 있는 재귀적인 형태의 구조입니다. 예를 들어, 밑의 사진처럼 N=3일 때의 출력은 N=2일 때의 출력을 가운데에 포함하고 있습니다. 이전에 별 찍기와 연관된 문제를 푼 적이 있다면, 조금 응용하여 풀 수 있는 문제입니다. 문제 풀이 미리 정리해 놓고 가야 할 것 해당 문제는 재귀적인 함수호출을 연습하기 위해 만들어진 문제입니다. 출력의 사이즈는 다음과 같은 관계를 가집니다. 가로: 4 * N - 3, 세로: 4 * N - 1 N번째 출력은 N - 1번째의 출력을 중심으로 두고, 양옆으.. 2023. 5. 22.
Colab의 현재 작업 디렉토리 변경하기 디렉토리 변경 Colab에서 현재 작업 디렉토리를 변경해야 할 때가 있다. 보통 이런 경우에 자주 변경한다. 프로젝트 디렉토리로 이동하여 스크립트를 실행하기 위해 데이터 파일이나 모델을 특정 디렉토리에 저장하고 해당 디렉토리에서 작업을 수행하기 위해 외부 라이브러리나 패키지가 특정 디렉토리에 설치되어 있어서 프로젝트 구조나 워크플로우에 따라 특정 디렉토리에서 작업해야 하는 경우 방법 Colab에서 작업 디렉토리를 변경하고 싶다면, 다음과 같은 두가지 방법을 사용할 수 있다. 코랩 세션에서 !cd 명령어를 사용하여 작업 디렉토리를 변경한다. 하지만 이 방법은 현재 셀(한 칸)에서만 작업 디렉토리가 변경된다. 전체 셀에 대하여 현재 작업 디렉토리를 변경하려면, 파이썬의 os 모듈을 사용하여 작업 디렉토리를 .. 2023. 5. 16.
게임 구현하기: ABC를 사용하여 카드의 추상 베이스 클래스 만들기 Slay the Spire게임을 구축하는데 가장 오래걸리고 힘든 일은, 게임 내의 상호작용 하는 요소 중 가장 많은 비중을 차지하고 가장 많은 종류가 있는 '카드'를 구현하는 것이다. 이 카드를 구현하는 방법은 여러가지가 있을 수 있는데, 내가 사용하고자 하는 방법은 다음과 같다. 카드 구현 방법 '카드'라는 공통 기능을 정의하는 추상 베이스 클래스를 만들기 위해 ABC 클래스를 사용한다. '카드'를 상속받는 더 작은 범위의 카드 클래스를 만든다.(마찬가지로 ABC를 사용할 것이다.) 예를 들어, 'AttackCard', 'SkillCard', 'PowerCard' 등이 있다. 각 카드의 데이터(이름, 등급, 타입, 에너지, 효과 등)를 JSON 파일 형태로 저장한다. 모든 카드의 효과를 코드에서 구현한.. 2023. 4. 15.
게임 구현2: 상호작용 정리하기1 Obsidian Canvas를 사용하여 게임에서 구현할 상호작용 정리 조금 복잡해 보이지만, 사실 직접 게임을 해보면 아주 직관적으로 다가오는 요소들이다. 아래에서 조금 더 자세히 설명하겠다. 밑에는 위 이미지의 요소들을 간단하게 비슷한 요소들끼리 정리한 것이다. 이러한 정리를 나는 옵시디언을 사용하여 상호관계를 확인할 수 있게 정리할 것이다. Player 아래는 플레이어가 가지는 요소들이다. 체력: 게임을 진행하기 위해 필요한 수치이다. 캐릭터 별로 최대 체력이 다르며, 현재 체력이 0이하로 떨어지면 게임이 종료된다. 체력이 0이 되었을 때 효과가 발동하는 포션과 유물이 존재한다. 골드: 게임에서 이벤트와 상점에서 사용할 수 있는 재화이다. 보통 상점에서 유물, 포션, 카드 구입, 카드제거 등의 서비스.. 2023. 4. 11.