알고리즘 코드카타
https://school.programmers.co.kr/learn/courses/30/lessons/12926
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
소문자 아스키코드에서 25를 더하면 아스키 범위 초과로 오류 발생
원래 코드
#include <string>
#include <vector>
using namespace std;
string solution(string s, int n) {
string answer = s;
for (char& c : answer) {
if (isupper(c)) {
c += n;
if (c > 'Z') { c = c - 'Z' + 'A' - 1; }
}
else if (islower(c)) {
c += n;
if (c > 'z') { c = c - 'z' + 'a' - 1; }
}
}
return answer;
}
수정한 코드
else if (islower(c)) {
c += n - 26;
if (c < 'a') { c += 26; }
}
프로젝트 회고
C# console로 Text RPG 게임을 만드는 팀 프로젝트가 끝이 났다.
이번 프로젝트에선 다른 사람이 한 개인과제를 베이스로 팀 과제를 시작했었다.
프로젝트를 하면서 다른 사람의 코드를 가지고 코딩을 한다는 것이 쉬운일이 아님을 느꼈다.
항상 내가 짠 코드 또는 팀원과 함께 작업한 코드로 구현을 했었는데,
이번엔 아예 처음보는 코드로 구현을 시작하려니 구현 초반엔 코드를 이해하는데에 시간을 많이 썼다.
또 초면인 Json도 구현 시간을 더했다. 그러다보니 내 파트 구현이 더뎌 힘들고 죄송했다...
그래도 그 코드의 레벨이 높아 코드를 이해하며 많이 배웠다. 특히 객체지향의 사고를 많이 배운 것 같다.
또 어떤 기능을 구현하려고 할 때, 이미 그 기능을 하고 있는 함수가 존재해 갖다 쓰면 되는 일도 많아 굉장히 편했다.
Json도 처음 써보면서, 발전했던 프로젝트가 아니었나 싶다.
팀원분들도 굉장히 잘 해주셨다. 나는 내 거 하고 있으면 뚝딱뚝딱 만들어 머지할 때 보면 뭔가 완성되어 있었다.
혹시라도 보고 계시다면 고생하셨다고 말씀드리고 싶다.
https://github.com/uhbbang33/TextRPG_3
GitHub - uhbbang33/TextRPG_3
Contribute to uhbbang33/TextRPG_3 development by creating an account on GitHub.
github.com
팀 프로젝트에 배경음악을 추가하려고 한다.
배경음악 구현
mp3 파일 wav파일로 바꾸기
C# console은 wav파일만 지원하기 때문에 mp3파일을 사용하게 되면 오류가 발생한다.
나는 mp3파일만 가지고 있어 mp3 파일을 wav파일로 바꿔주는 작업이 필요했는데,
구글엔 수많은 무료 mp3 to wav convertor가 있었지만 바이러스 감염 위험을 떠안으면서 사용하고 싶지 않았다.
그러다가 "개발자라면 간단한건 코딩으로 해결하라"라는 어느 블로거의 말을 보고
코드로 파일 형식을 바꿔주기도 했다.
먼저 NuGet 패키지 관리자에서 NAudio의 설치가 필요하다.
C#에서 mp3 파일을 wav로 바꿔주는 코드
using NAudio.Wave;
...
using (Mp3FileReader mp3 = new Mp3FileReader(@"..\..\..\strangerThings.mp3"))
{
using (WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(mp3))
{
WaveFileWriter.CreateWaveFile(@"..\..\..\strangerThings.wav", pcmStream);
}
}
wav 파일이 생성되어서 코드는 프로젝트에서 삭제했다.
wav로 바꿔주고 게임을 켰더니 볼륨이 너무 크다.
볼륨 조절하는 코드도 만들어줬다.
볼륨을 조절과 음악 loop하는 코드
using NAudio.Wave;
using NAudio.Wave.SampleProviders;
...
void SoundInit()
{
AudioFileReader audioFile = new AudioFileReader(@"..\..\..\strangerThings.wav");
WaveOutEvent waveOut = new WaveOutEvent();
VolumeSampleProvider v = new VolumeSampleProvider(audioFile.ToSampleProvider());
v.Volume = 0.15f;
// Music Loop
waveOut.PlaybackStopped += (sender, args) =>
{
if (waveOut.PlaybackState != PlaybackState.Stopped)
return;
audioFile.Position = 0;
waveOut.Play();
};
waveOut.Init(v);
waveOut.Play();
}
v.Volume 의 값을 조정해주면 볼륨 조절이 된다.
SoundPlayer는 볼륨 조절을 지원해주지 않는다.
NAudio에 있는 WaveOutEvent와 SampleProviders를 사용했더니 볼륨 조절이 가능했다.
오늘 하루 회고
일주일동안 구현했던 프로젝트가 끝났다.
이제 남은 건 내일 발표뿐! ..이지만
우리팀은 발표가 끝나고 추가구현하고 싶었던 부분을 더 구현하기로 했다.
'내일배움캠프(Unity)' 카테고리의 다른 글
내일배움캠프 게임개발(Unity) 20일차 231124 TIL - Unity 게임개발입문 시작 (2) | 2023.11.24 |
---|---|
내일배움캠프 게임개발(Unity) 19일차 231123 TIL (2) | 2023.11.23 |
내일배움캠프 게임개발(Unity) 17일차 231121 TIL (1) | 2023.11.21 |
내일배움캠프 게임개발(Unity) 16일차 231120 TIL (0) | 2023.11.20 |
내일배움캠프 게임개발(Unity) 15일차 231117 TIL (1) | 2023.11.17 |