
변수를 컨트롤 하다 보면 그 변수의 최대치와 최소치를 정해줘야 하는 순간이 있다. Math 클래스는 삼각, 로그 및 기타 일반 수학 함수에 대한 상수 및 정적 메서드를 제공하는 클래스로써 다양한 방법으로 코드 작성을 간편하게 해준다.
Text RPG의 스테이지를 구성하면서 어떤 적 타입을 나오게 할 것인지 층 수에 따라 구분을 주려고 했다.

위 사진과 같은 적 타입과 레벨을 설정하기 위해 나는 타워 층수를 변수로 가져와서 해당 값을 기준으로 최소 최대치를 정한 후 랜덤 함수를 통해 그 값을 결정했다.
// 어떤 적을 등장시킬 지
int lowType = towerLv - 4;
int highType = towerLv + 1;
if (lowType < 0)
{
lowType = 0;
}
if (highType > 5)
{
highType = 5;
}
int type = (random.Next(lowType, highType)); // 던전 레벨에 맞는 적 생성
메커니즘을 구현하기 위해 짠 코드였지만 사실 굉장히 비효율 적인 코드고 같은 값을 가져오면서 더 간단한 코드를 Math 클래스를 통해 구현할 수 있다는 것을 팀원과 회의 도중에 알게 되었다.
Math.Max 메서드 지정된 두 숫자 중 더 큰 숫자 그리고 Math.Min 메서드는 지정된 두 숫자 중 더 작은 숫자를 반환하는 메서드이다.
MS 공식 문서에는 다음과 같이 기술되어 있다.

https://learn.microsoft.com/ko-kr/dotnet/api/system.math.max?view=net-8.0
따라서 내 경우에도 아래와 같이 간단한 코드로 수정이 가능하다.
// 어떤 적을 등장시킬 지
int lowType = Math.Max(towerLv - 4, 0);
int highType = Math.Min(towerLv + 1, 5);
int type = (random.Next(lowType, highType)); // 던전 레벨에 맞는 적 생성
혼자서 메커니즘을 짜는 것도 공부에 도움이 되었지만, 팀 회의를 통해서 구현 하고자 했던 목표와 이를 위한 구형 방식, 코드를 공유하니 내 코드를 더 발전시켜 나갈 수 있다는 점. 다시 한번 깨닫고 간다.