오늘의 학습 키워드
Int int.ComareTo(int value), List<T>.Sort(Comparison<T> comparison), Console.ForegroundColor
공부한 내용
목표 : 인벤토리를 내림차순으로 정렬
시도한 것 : List.Sort()와 람다를 사용하여 Int int.CompareTo(int value)로 앞의 int와 뒤의 int를 비교하여 정렬하였다.
문제 : 기본적으로 비교하면 오름차순으로 정렬된다.
해결 : -를 곱하고 반환해 반대로 정렬하게 하였다.(내림차순)
// 아이템 정렬
void ItemSort()
{
string input = null;
WriteInventoryInfo();
input = Console.ReadLine();
switch (input)
{
case "0":
gameState = GameState.Inventory;
break;
case "1":
inventory.Items.Sort((x, y) =>
{
// ComareTo
// -는 내림차순
return -x.Info.Name.Length.CompareTo(y.Info.Name.Length);
});
break;
case "2":
inventory.Items.Sort((x, y) =>
{
// ComareTo
return -x.Info.IsEquiped.CompareTo(y.Info.IsEquiped);
});
break;
case "3":
inventory.Items.Sort((x, y) =>
{
// ComareTo
return -x.Info.AttackModifier.CompareTo(y.Info.AttackModifier);
});
break;
case "4":
inventory.Items.Sort((x, y) =>
{
// ComareTo
return -x.Info.DefenseModifier.CompareTo(y.Info.DefenseModifier);
});
break;
default:
Console.WriteLine("잘못된 입력입니다.\n");
break;
}
}
목표 : 콘솔 색 바꾸기
해결 : Console.ForegroundColor = ConsoleColor.Green;을 사용하여 콘솔 색을 초록색으로 바꾸었다.
오늘의 회고
오늘은 상점 구매와 판매, 정렬을 구현하고 줄맞춤 버그를 수정했다. 정렬에서 Comparison을 사용하는데 좀 걸렸지만 int 값을 반환하는 것을 알고 내림차순으로 쉽게 정렬할 수 있었다. 줄 맞춤 버그는 어제부터 시달렸던 과제인데 한글이 2바이트를 먹는다는 것과 한글을 검출해서 공백에 패딩을 한 자리 주는 것으로 해결할 수 있었다.
내일은 장착 개선, 던전입장, 휴식, 레벨업, 게임 저장을 해볼 생각이다. 이를 내일 제출(오후 6시)까지 구현하는 것은 어려울 수 있지만 최대한 구현해 볼 생각이고 이후로도 이번주 안에는 작업할 생각이다. 내일 열심히 해서 최대한 달성해보자. 내일도 파이팅!
참고 :
https://developer-talk.tistory.com/220
'스파르타 Unity 1기' 카테고리의 다른 글
내일배움캠프 13일차 TIL - TextRPG 리팩토링 (0) | 2023.08.24 |
---|---|
내일배움캠프 12일차 TIL - TextRPG 만들기 4 (0) | 2023.08.23 |
내일배움캠프 10일차 TIL - TextRPG 만들기 2 (0) | 2023.08.21 |
내일배움캠프 2주차 WIL - 알고리즘과 C# 게임 구현 (0) | 2023.08.20 |
내일배움캠프 9일차 TIL - TextRPG 만들기 1 (0) | 2023.08.18 |