발표 후 피드백
- 콘솔창을 꾸미기 위해 Console.foregroundColor를 사용했는데 색을 자주 바꿔야 하는 경우 일일이 작성하기 보다는 메서드로 만들어서 가독성을 높이는 것이 좋다.
내가 작성한 코드를 수정 등 추후에 다시 건드리는 경우가 생겼을 때 쉬울지 생각하며 작성해야 한다.
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine($"\n[플레이어의 현재 상태]\n");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write($"이름: ");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine($"{Name}");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write($"레벨: ");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine($"{Level}");
.
.
.
Console.ForegroundColor = ConsoleColor.Green;
Console.Write($"소지금: ");
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine($"{Gold}G");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\n[0] 나가기\n");
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("원하시는 행동을 입력해주세요.");
Console.ResetColor();
- 변경 : 가독성이 높아지고 코드 길이가 확연히 줄어들었다.
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine($"\n[플레이어의 현재 상태]\n");
SetColorStatusText("이름: ", $"{Name}");
SetColorStatusText("레벨: ", $"{Level}");
SetColorStatusText("경험치: ", $"{Exp} / {MaxExp}");
SetColorStatusText("직업: ", $"{Job}");
SetColorStatusText("체력: ", $"{CurrentHp} / {TotalMaxHp} ({MaxHp} +{ExtraHp})");
SetColorStatusText("마력: ", $"{CurrentMp} / {TotalMaxMp} ({MaxMp} +{ExtraMp})");
SetColorStatusText("공격력: ", $"{TotalAttack} ({Attack} +{ExtraAttack})");
SetColorStatusText("방어력: ", $"{TotalDefense} ({Defense} +{ExtraDefense})");
SetColorStatusText("민첩: ", $"{TotalAgility} ({Agility} +{ExtraAgility})");
SetColorStatusText("명중: ", $"{TotalAccuracy} ({Accuracy} +{ExtraAccuracy})");
SetColorStatusText("행운: ", $"{TotalLuck} ({Luck} +{ExtraLuck})");
SetColorStatusText("소지금: ", $"{Gold}G");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\n[0] 나가기\n");
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("원하시는 행동을 입력해주세요.");
Console.ResetColor();
---
public void SetColorStatusText(string _statNameText, string _stat)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Write(_statNameText);
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine(_stat);
}
- 확장 : 위의 예시나 잘못된 입력입니다 표시, 사용자에게 입력 받기 등 자주 쓰이는 기능들을 메서드화하고 UI클래스를 만들어서 모아두었으면 더 좋은 코드를 작성할 수 있었을 것 같다.
- 여러 Scene 클래스가 있고 그 중 MainScene 클래스에서 다른 Scene을 호출하는 방식으로 작성했는데, Scene클래스를 만들고 상속 받는 구조로 만들고 이를 SceneManager 클래스에서 관리하는 방식으로 만들면 좋다는 피드백을 받았다.
추가로 해볼 것
- GitHub으로 다른 팀들의 코드도 살펴보고 어떤 방식으로 작성했는지 확인
- 우리팀 코드 개선해보기
- 추후 자세한 피드백을 받아 개선해보기