게임 밸런싱할 때 사용하기 좋은 배율 계산기를 직접 만들었습니다.
using System;
class Program
{
public static void Main()
{
// 입력값을 받을 변수 선언
double initialAttack, finalAttack, initialMonsterHP;
int stages, hitsToKill;
// 사용자에게 입력 요청
// Console.Write("총 스테이지 수 (stages): ");
stages = Convert.ToInt32(Console.ReadLine());
// 몬스터를 죽이기 위한 공격 횟수
hitsToKill = Convert.ToInt32(Console.ReadLine());
// 첫 스테이지 캐릭터 공격력
initialAttack = Convert.ToDouble(Console.ReadLine());
// 첫 스테이지 몬스터 체력
initialMonsterHP = Convert.ToDouble(Console.ReadLine());
// 마지막 스테이지 캐릭터 공격력
finalAttack = Convert.ToDouble(Console.ReadLine());
// 공격력이 각 스테이지마다 얼마나 증가하는지 계산
double attackIncrement = (finalAttack - initialAttack) / (stages - 1);
Console.WriteLine("각 스테이지의 x 값:");
for (int stage = 1; stage <= stages; stage++)
{
// 현재 스테이지의 공격력 계산
double currentAttack = initialAttack + (stage - 1) * attackIncrement;
// 현재 스테이지에서 몬스터를 죽이기 위해 필요한 체력 설정
double requiredMonsterHP = currentAttack * hitsToKill;
// x 값 계산 및 반올림
double xValue = Math.Round((requiredMonsterHP - initialMonsterHP) / initialMonsterHP);
// 결과 출력
Console.WriteLine($"{xValue}");
}
}
}
코드 설명
- 네임스페이스 포함:
using System;
는 기본적인 콘솔 입출력 기능을 제공하는 네임스페이스를 포함합니다. - 클래스 및 Main 메서드 정의:
Program
클래스를 정의하고,Main
메서드를 통해 프로그램의 실행을 시작합니다.Main
메서드는 C# 프로그램의 진입점입니다. - 변수 선언: 프로그램에서 사용할 변수들을 선언합니다.
initialAttack
: 첫 번째 스테이지에서 캐릭터의 공격력.finalAttack
: 마지막 스테이지에서 캐릭터의 공격력.initialMonsterHP
: 초기 몬스터의 체력.stages
: 총 스테이지 수.hitsToKill
: 몬스터를 처치하기 위한 히트 수.
- 사용자 입력 요청: 사용자가 입력한 값을 받아오기 위해
Console.Write
와Console.ReadLine()
메서드를 사용하여 각 변수를 초기화합니다. - 공격력 증가량 계산:
attackIncrement
변수를 사용해 각 스테이지에서 공격력이 얼마나 증가해야 하는지를 계산합니다. - 결과 출력 시작: 각 스테이지에서 몬스터의 체력 변화량을 계산하기 전에 안내 메시지를 출력합니다.
- For 루프와 x 값 계산:
for
루프를 사용해 각 스테이지에 대해 현재 공격력을 계산하고, 몬스터의 체력 요구량을 구한 후xValue
를 출력합니다.- 현재 공격력은 초기 공격력과 증가량을 기반으로 계산되며, 요구되는 몬스터 HP는 현재 공격력에 히트 수를 곱하여 구합니다.