기획서
프로젝트 개요
- 프로젝트 이름 : Laboratory
- 개발 기간 : 12/29 ~ 01/07 PM 14:00
- 게임 컨셉 및 목표 : 텍스트 기반 자동 RPG (추후 변경될 수 있음.) 각자 분담하여 필수 기능을 구현하고 도전 기능까지 해보기
세계관 & 스토리
실험실에서 눈뜬 주인공, 눈앞에 놓인 권총과 함께 사이렌과 나타난 괴물을 상대한다!
시스템 상세
- 전투
- 캐릭터
- 아이템
UI 구조(콘솔 출력/입력)
UI는 기본 기능이 구현되고 남은 시간에 구현할 예정이지만 미리 기획.
- 예시
// 남는 시간에 따라 아래로 한개씩 추가
// Unicode 기반 박스를 해상도에 맞게 설정해 베이스 UI 생성
// 기본 박스 안에 Text 박스 추가 생성
// 맵
// 아스키 아트로 전투 시각적 표현
┌──────────────────────────────────────────────────────┐
| ┌───────────────────< Map >──────────────────┐ |
| | ★ - - - - - - - - - - - - - - - - - - ▲ | |
| └────────────────────────────────────────────┘ |
│ |\_____/| │
│ \/ ○ ○ \/ │
│ \_▲_/ │
│ ____ Main Box / \ │
│ / \ /| || || │
│ | | / / ■\_ /\_/■ │
│ \ / / / │
│ __/ \_/ / │
│ / \| │
│ |_| |_| │
│ | | │
└──────────────────────────────────────────────────────┘
┌───────────────────────────────────────┐┌─────────────┐
│ > Text Box ││ │
│ ││ Stat │
│ ││ │
└───────────────────────────────────────┘└─────────────┘
-> Map
┌────────────────────────────────────────────┐
| ★ - - - - - - - - - - - - - - - - - - ▲ |
└────────────────────────────────────────────┘
-> Stat
┌───────────────────┐
| Name : player |
| Class: |
| HP : |
| MP : |
| ATT : |
| Level: |
└───────────────────┘
맵 & 탐험 구조
선형 구조 : 시작 → 자동 전투 → 10레벨 전 까지 반복 → 10레벨 달성 및 보스 전투 → 엔딩
이동 및 전투 방식은 추후 추가 기능에 의해 변경될 수 있음.
클래스 설계
개발 범위 & 도전 요소
- 필수 기능
- 플레이어 캐릭터 생성
- 플레이어는 캐릭터 생성시 이름을 설정 할 수 있습니다.
- 캐릭터는 레벨 1, 초기 체력 200, 공격력 30, 경험치 0으로 시작합니다.
- 각 레벨업에 필요한 경험치는 100으로 동일합니다.
- 게임 플레이 중,언제든지 캐릭터 상태 확인할 수 있어야 합니다.
- 몬스터
- 몬스터도 이름, 체력, 공격력을 가집니다.
- 몬스터의 스탯은 캐릭터 레벨에 비례해서 랜덤하게 설정합니다.
- 체력: (레벨 × 20) ~ (레벨 × 30)
- 공격력: (레벨 × 5) ~ (레벨 × 10)
- 전투시스템
- 랜덤으로 난입하는 몬스터와 턴제로 싸웁니다.
- 전투 시작 조건은 다음과 같아요.
- 캐릭터 생성 직후,
- 전투 승리 후 상점 방문을 스킵한 경우,
- 상점 이용 후 다시 전투가 시작됩니다.
- 전투에서 승리하면 다음과 같은 보상을 받습니다.
- 경험치는 50을 획득합니다.
- 골드는 10~20을 랜덤으로 획득합니다.
- 30% 확률로 아이템이 떨어집니다.
- 경험치가 100이상이 되면 레벨업을 합니다.
- 레벨업
- 레벨이 오를 때마다 체력과 공격력이 상승합니다.
- 체력: (현재 체력 + (레벨 × 20))
- 공격력: (현재 공격력 + (레벨 × 5))
- 이후, 최대치까지 체력을 회복합니다.
- 최대 레벨은 10으로 제한합니다.
- 아이템
- 아이템은 체력 +50(vhtus 또는 공격력 +10을 증가시킵니다.
- 플레이어 캐릭터는 전투 중에 아이템을 랜덤하게 사용됩니다.
- 아이템을 사용하는 조건은 자유롭게 설정해주세요.
- 아이템은 사용 순간 사라지고, 효과는 바로 캐릭터에게 반영됩니다.
- 게임 로그
- 공격, 피해, 아이템 사용, 골드 획득 등 중요한 이벤트는 콘솔에 나열하여 표시합니다.
- 로그를 통해 오늘 어떤 몬스터를 얼마나 잡았는지 한 눈에 확인 가능해야 합니다.
- 플레이어 캐릭터 생성
- 도전 기능 (선택)
- 몬스터 보스전
- 레벨 10 달성 시, “이제 일반 몬스터는 상대도 안 된다!” 라는 메시지를 출력하세요.
- **“보스 몬스터”**가 등장합니다! 별도의 연출을 넣어주어도 좋습니다.
- 보스의 스탯은 기존 몬스터의 1.5배 범위를 랜덤으로 설정합니다.
- 보스를 클리어하면 게임 엔딩을 진행해요.
- 상점 시스템
- 전투가 끝나면 플레이어에게 상점을 입장할 것인지 물어보세요.
- 상점에서는 골드로 아이템을 구매/판매 가능해요.
- 아이템 구매
- 골드를 사용해서 아이템을 구매할 수 있어요.
- 구매 아이템은 인벤토리에 즉시 추가됩니다.
- 아이템 판매
- 보유한 아이템을 골드로 판매할 수있어요.
- 판매 가격은 구입 원가의 60%입니다.
- 판매된 아이템은 인벤토리에서 즉시 제거되요.
- 아이템 목록은 자유롭게 제작할 수 있습니다.
- 아이템은 가격이 정해져 있어야 합니다. 유동적으로 변할 수 없어요.
- 몬스터 보스전
테스트 계획
1차 필수 기능 테스트 12/31 15:00
2차 추가 기능 테스트
일정 계획
~ 12/31 | 13:00 : 필수 기능 구현
~ 01/05 | 21:00 추가 기능 구현
01/06 | Merge 및 발표자료 준비
코드카타
정수 내림차순으로 배치하기
- 설명
- 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
- 제한 조건
- n은 1이상 8000000000 이하인 자연수입니다
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
long long solution(long long n) {
long long answer = 0;
if (n >= 1 && n <= 8000000000)
{
string str;
vector<long long> vec;
str = to_string(n);
for (char c : str)
{
vec.push_back(c - '0');
}
sort(vec.begin(), vec.end(), greater<long long>());
for (const auto& i : vec)
{
answer *= 10;
answer += i;
}
}
return answer;
}
하샤드 수
- 설명
- 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
- 제한 조건
- x는 1이상, 10000 이하인 정수입니다
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool solution(int x) {
bool answer = true;
int num = 0;
string str = to_string(x);
for (const auto& c : str)
{
num += c - '0';
}
answer = (x % num) == 0;
return answer;
}
'언리얼' 카테고리의 다른 글
| [2025.12.31] Unreal_7기 24 일차 | C++ 3 주차 (0) | 2025.12.31 |
|---|---|
| [2025.12.30] Unreal_7기 23 일차 | C++ 3 주차 (0) | 2025.12.30 |
| [2025.12.26] Unreal_7기 21 일차 | C++ 3 주차 (0) | 2025.12.26 |
| [2025.12.24] Unreal_7기 20 일차 | C++ 3 주차 (0) | 2025.12.24 |
| [2025.12.23] Unreal_7기 19 일차 | C++ 3 주차 (0) | 2025.12.23 |
