- 해설 강의
* 화면, 기능 등으로 해야 할 작업을 구조별로 나눠서 미리 생각해두고 진행하는 편이 좋다. - Console/ReadLine()
내 코드
Console.Write("\n\n원하시는 행동을 입력해주세요: ");
string input = Console.ReadLine();
switch (input)
{
해설 코드
Console.Write("\n\n원하시는 행동을 입력해주세요: ");
string input = Console.ReadLine();
int result = int.Parse(Input); // input한 정수형 결과를 result에 저장
switch (result)
{
숫자를 입력받아 처리하는 경우라면 해설 코드의 방식이 더 명확하고, 문자열 명령어를 입력받는 경우라면 내 코드 방식이 더 적합하다.
- 화면(UI)
나의 코드
Console.Write("\n\n원하시는 행동을 입력해주세요: ");
string input = Console.ReadLine();
switch (input)
{
case "1":
Player.ShowStatus();
break;
case "2":
Inventory.ShowInventory();
break;
case "3":
Store.ShowStore();
break;
default:
Console.WriteLine("잘못된 선택입니다. 다시 선택해주세요.");
PlayerSelect();
break;
해설 코드
Console.Write("\n\n원하시는 행동을 입력해주세요: ");
string input = Console.ReadLine();
switch (input)
{
case "1":
DisplayStatUI
break;
Static void DisplayStatUI()
{
다른 클래스로 넘어가지 않고 동일한 클래스에서 void 함수를 만들어서 출력.
- Console.clear();
콘솔 프로그램에서 화면을 초기화하거나 갱신할 때 이전 내용이 남지 않도록 하여 더 깔끔한 화면을 제공하기 위해 사용된다. 쉽게 말해서 화면 전환.
- 문자열 입력 시 "잘못된 입력입니다." 출력
나의 코드
default:
Console.WriteLine("잘못된 선택입니다. 다시 선택해주세요.");
ChadSelect();
break;
}
해설 코드
static int CheckInput(int min, int max)
{
int result;
while (true)
{
string input = Console.ReadLine();
bool isNumber = int.TryParse(input, out result);
if (isNumber)
{
if(result >= min && result <= max)
return result;
}
Console.WriteLine("잘못된 입력입니다!!!!");
}
}
나의 경우 "1", "2", "3" 등 각각의 경우를 case로 구분했지만, 해설의 경우 코드를 간결하게 바꾸기 위해 값을 체크하는 함수를 만들어서 사용했다.
먼저 isNumber 함수로 숫자인지 체크한다. input을 정수형 result로 바꿔 if 문을 돌렸을 때 정수가 아니라면 "잘못된 입력입니다"가 출력되는 반복문을 실행한다.
만약 숫자가 맞다면 선택지 내 번호를 체크했는지 범위 조건문으로 체크한다. 함수에 매개변수를 사용하면 해당 함수를 사용하는 메서드에서 매개변수에 해당하는 값을 넣을 수 있다.
- private
해당 클래스에서만 접근할 수 있다는 의미의 함수 - 캐릭터 상태창
해설 코드
Console.WriteLine($"Lv. {level:D2}");
Console.WriteLine($"{name} {{ {job} }}");
최소 두 자리 수로 표시하기 위한 서식 지정자(D2)를 사용
level 값이 5라면, 05로 출력되고, level 값이 12라면, 그대로 12로 출력됨
- 캐릭터 상태창 데이터 입력
static void Main(string[] args)
{
SetData();
DisplayMainUI();
}
static void SetData() // 상태창 데이터를 함수로 저장
{
level = 1;
name= "Chad";
job = "전사";
atk = 10;
def = 5;
hp = 100;
gold = 10000;
}
- 아이템 장착 시 달라지는 공격력/방어력 출력
해설 코드
Console.WriteLine(extraAtk == 0 ? $"공격력 : {atk}" : $"공격력 : {atk + extraAtk} (+{extraAtk})");
Console.WriteLine(extraDef == 0 ? $"방어력 : {def}" : $"방어력 : {def + extraDef} (+{extraDef})");
삼항 연산자를 통해 추가 공/방어력이 0이면 전자를 출력 : 아니라면 후자를 출력하게 만듦
- 01:30:00
'[내배캠] 본 캠프 개발 학습 > 매일매일 쓰는 TIL' 카테고리의 다른 글
9월 30일 월요일 본 캠프 개발 일지 (0) | 2024.09.30 |
---|---|
9월 27일 금요일 본 캠프 개발 일지 | 개인 과제 해설 강의 (0) | 2024.09.27 |
9월 23일 월요일 본 캠프 개발 일지 | C# 문법 종합반 강의 (0) | 2024.09.23 |
9월 20일 금요일 본 캠프 개발 일지 | C# 문법 종합반 강의 (1) | 2024.09.20 |
9월 11일 수요일 본 캠프 개발 일지 (0) | 2024.09.11 |