1. 오늘의 알고리즘 코드 카타
수박수박수박수박수박수?
답안 :
public class Solution {
public string solution(int n) {
string answer = "";
for(int i = 1; i <= n; i++)
{
if(i % 2 == 0)
answer += "박";
else
answer += "수";
}
return answer;
}
}
뭐 평소에 자주 쓰는 방법으로 해결하긴 했다. 하지만 다른 풀이들을 보니 특이한 기능들을 많이 사용하던데 이 방법이 아닌 복잡한 방법을 사용하는 데 어떤 이유가 있는지 궁금했다.
그 날이 또 와버렸다.
팀 과제의 시간이다!
2. 팀 과제 시작
이번 팀 과제의 주제는 간단한 고전 게임들을 유니티를 이용 재해석 하는 게임이다.
고전 게임의 목록은 : 똥 피하기 게임 / 닷지 게임 / 벽돌 깨기
우리는 이 중에서 기존 리소스를 활용하기 더 불편하고, 난이도가 비교적 더 높아 보이는 벽돌 깨기는 배제한 뒤 똥 피하기와 닷지 게임 중에서 선택하기로 했다.
닷지 게임에 의견이 집중되고 이에 대한 구현 요구 필수 기능과 추가 기능을 살펴보며 어떻게 재해석 할지 브레인 스토밍을 했다.
- 필수 구현 사항
- 게임 화면: 게임을 플레이할 수 있는 화면을 만들어야 합니다. 화면 크기, 배경 등을 설정해야 합니다.
- 캐릭터: 주인공 캐릭터와 적 캐릭터를 만들고, 이들을 움직일 수 있도록 구현해야 합니다. 주인공 캐릭터는 플레이어의 조작에 따라 움직여야 하며, 적 캐릭터는 일정한 패턴에 따라 움직여야 합니다.
- 총알과 공격: 주인공 캐릭터가 총알을 발사할 수 있도록 구현하고, 적 캐릭터에게 공격을 가할 수 있어야 합니다. 또한, 적 캐릭터의 공격 동작을 정의해야 합니다.
- 충돌 감지: 총알과 적 캐릭터가 충돌했는지를 감지하고, 충돌 시 적 캐릭터를 제거하고 점수를 증가시켜야 합니다.
- 게임 로직: 게임의 기본 로직을 구현해야 합니다. 게임 시작, 종료, 점수, 생명 등을 관리해야 합니다.
- 선택 구현 사항
- 게임 난이도 조절: 난이도를 조절하기 위해 적의 이동 속도, 총알의 발사 속도, 적의 패턴 등을 조절할 수 있습니다.
- 아이템 시스템: 게임을 더 흥미롭게 만들기 위해 아이템 시스템을 도입할 수 있습니다. 플레이어가 아이템을 획득하면 임시로 강화되는 아이템, 체력을 회복하는 아이템 등을 추가할 수 있습니다.
- 특수 능력: 플레이어 캐릭터에 특수 능력을 부여하여 게임 플레이를 다양화할 수 있습니다. 예를 들어, 무적 모드, 빠른 이동 모드 등을 추가할 수 있습니다.
- 멀티플레이어 모드: 다른 플레이어와 함께 플레이할 수 있는 로컬 멀티플레이어 모드를 추가할 수 있습니다.
- 시각적 효과: 게임에 다양한 시각적 효과를 추가하여 게임의 시각적 품질을 향상시킬 수 있습니다.
- 사운드 효과: 게임에 배경 음악과 효과음을 추가하여 게임의 분위기를 높일 수 있습니다.
공격 기능이 필요하단 것은 전투가 필연적으로 들어가야 한다는 것
그래서 핵심 구현 기능은 탄막+전투라고 보았고 이를 중점으로 주제를 찾아보았다.
이러던 중 이들과 비슷한 게임들을 이야기 해보다가 아이작의 번제 이야기가 나왔고, 이를 좀 더 탄막 피하기에 집중 시키는 게임도 충분히 재미있을 것이라고 생각하여 우리 조는 닷지 게임 + 아이작의 번제 라는 게임 컨셉을 잡았다.
이를 위해 게임의 컨셉을 잡으며 플로우 차트를 짜보았다. 이를 위해 내 현란한 그림 실력을 자랑했다.
게임의 주요 컨셉은 닷지의 탄막 회피와 아이작의 방으로 이루어진 스테이지 / 아이템 수집이고
각 방 (필수 구현 기능 중 난이도 기능을 접목하여 난이도" 상 / 중 / 하" 로 이루어진 각 방 입구 3개가 존재)에 진입하게 되면 난이도에 따른 적 종류와 숫자가 있어 이들의 탄막을 정해진 시간 동안 회피한 뒤 시간을 모두 버티면 무적 상태였던 적들을 죽일 수 있게 변하여 복수하는 컨셉이다. 보스도 같은 방식으로 더 어려운 전투를 제공하는 방식이다.
이를 위한 게임 배경은 역시나 내일배움캠프 훈련 과정.
주인공은 익명의 내배캠 학생이며 적들은 우리가 여태까지 했던 과제들이다. (리소스 재활용 개꿀)
난이도는 수준 별 학습반 처럼 챌린지반 / 스탠더드반/ 베이직반으로 나누었다.
우리가 먹는 아이템들은 내배캠의 강의와 튜터님, 매니저님들과 관련된 물건들이 나온다.
(ex: 이XX 매니저님의 국뽕퀴즈 문제리스트 / 김XX 튜터님의 고양이 / 문XX 매니저님의 TIL / 한XX 매니저 피규어)
다행인 것은 기본 필수 구현 기능들은 거의 모두 강의 내용에서 다룬 것들이다.
그래서 이 부분은 괜히 작업을 나누기 보다는 팀장이 강의내용대로 깔끔하게 기반을 만들어두기로 했다.
몇가지 추가 기능도 개인 과제에서 다룬 내용을 비틀면 구현 가능할 것 같았다.
우선 작업 현황을 확인하는 것을 돕기 위해 팀에서 몇 가지 약속을 하였다.
과제 발제가 진행될 때 보여주었던 Git 컨벤션을 우리도 사용하기로 하였고
나는 추가적으로 팀 노션에 경영 때 배웠던 칸반 보드를 만들었다.
이런 방식으로 필수 기능 / 추가 기능 / 버그 리포트 별 보드를 만들어 두었다.
보드에서 보는 것처럼 내가 초반에 방 로직을 생각해 보는 것을 하기로 했고
캠프에서 처음 코딩을 시작한 코딩 초보로서 이런 것들은 부담스럽지만 어쩔 수 없다.
그래서 대충 방 스테이지 진행에 필요한 로직과 플로우를 구상해 보았다.
내일은 기본 기능들이 구현되어 공유되면
그것을 기반으로 먼저 방 로직을 대충 구성하고 시간이 된다면 방 그래픽을 구현해두어 게임의 전반적인 그래픽 분위기를 잡아두려고 한다.
쉬고싶어요 엉엉
분명 TIL 매일 제출했는데 하루 빠져있는 걸로 되어 있어서 뒤늦게 다시 제출했는데 인정 되었지만
연속 출석 기간이 짤려버렸다. 매니저님 제 연속 일수 돌려줘요 엉엉
'TIL' 카테고리의 다른 글
[TIL]2024-1-26 / 25일차 - 팀 과제 맵 이동 구현 (2) | 2024.01.26 |
---|---|
[TIL]2024-1-25 / 24일차 - 레벨 그리드 맵 / 그래픽 세팅 (1) | 2024.01.26 |
[TIL]2024-1-23 / 22일차 - Unity 입문 개인 과제 제출 (1) | 2024.01.23 |
[TIL]2024-1-22 / 21일차 - Unity 입문 개인 과제 기능 구현 (0) | 2024.01.22 |
[TIL]2024-1-19 / 20일차 - 벅찬 강의 분량 / 개인과제 시작 (0) | 2024.01.19 |