오늘의 학습 키워드
ToString("D2"), string.PadLeft(int num, char character), 인터페이스
공부한 내용
문자열 공백 0출력
저번에 배웠던 ToString("N2")는 소숫점을 나타낸다면 ToString("D2")를 하면 공백이 0으로 채워진다는 것을 배웠다.
void ShowState()
{
string input = null;
while (input != "0")
{
Console.Write
(
"상태 보기\n" +
"캐릭터의 정보가 표시됩니다\n\n" +
$"Lv. {character.Level.ToString("D2")}\n" +
$"Chad ( {character.Name} )\n" +
$"공격력 : {character.Attack}\n" +
$"방어력 : {character.Defense}\n" +
$"체력 : {character.Health}\n" +
$"Gold : {character.Gold} G\n\n" +
"0. 나가기\n\n" +
"원하시는 행동을 입력해주세요.\n" +
">> "
);
input = Console.ReadLine();
}
Console.WriteLine();
}
아이템 인터페이스
인터페이스에 관해 궁금한 점이 있었는데 어떨 때 인터페이스를 사용하는지 궁금했다.
검색도 해보고 고민을 해봤지만 이건 내 영역을 넘어선 것 같아서 튜터님께 언제 사용하면 좋을지에 대해 질문을 드렸다.
인터페이스 사용과 관련하여 다음 내용을 참고하면 좋다.
1. 인터페이스는 공통적인 행위를 묶을 때 사용하면 좋다.
2. 로직이 조금이라도 들어간다면 클래스로 빼는 것이 덜 복잡할 수 있다.(인터페이스 안에서는 구현이 불가능하므로)
3. 최소한의 단위로 만들어야지 코드가 보기 좋다.
interface IItem
{
void Equip(bool isEquip);
}
보기 안 좋은 코드일 수 있지만 일단 구현해보는 것으로 하고 나중에 리팩토링을 해봐야겠다고 생각했다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TextRPG_Single
{
class Item : IItem
{
public enum ItemType
{
Weapon,
Armor,
}
public struct ItemInfo
{
public ItemType Type { get; set; }
public string Name { get; set; }
public int AttackModifier { get; set; }
public int DefenseModifier { get; set; }
public bool IsEquiped { get; set; }
}
public ItemInfo Info = new ItemInfo();
protected Item(ItemType type, string name, int attack, int defense, bool isEquiped)
{
Info.Type = type;
Info.Name = name;
Info.AttackModifier = attack;
Info.DefenseModifier = defense;
Info.IsEquiped = isEquiped;
}
public void Equip(bool isEquip)
{
Info.IsEquiped = isEquip;
}
}
}
오늘의 회고
튜터님께 질문드리기 전에 내가 고민했던 것들을 정리 했었는데 막상 앞에서 질문하려니 부끄럽고 말도 잘 못드렸던 것 같다. 하지만 친절하게 잘 설명해주려고 하시고 동기부여도 해주시니 공부할 맛이 났다. 사실 엄청나게 깨달음을 주신 건 아니지만 코드엔 정답은 없고 상황마다 다르며 직접 구현해보고 내가 경험으로 쌓아가는 것이라 먼저 해보라는 말씀이 제일 기억에 남았던 것 같다. 무작정 짜보고 왜 이게 안 좋은지 판단하고 고치는 작업을 통해 내가 더 성장할 수 있는 기회를 주신 것 같아서 더 감사하다는 생각이 들었다.
오늘 질문을 하면서 느낀 점은 튜터님이 있고 질문을 편하게 드릴 수 있다는 점이 얼마나 좋은 환경인지 조금이라도 깨닫게 되는 계기가 된 것 같다. 항상 열심히 해주시는 튜터님들, 매니저님들, 동료들을 생각하며 나도 또한 열심히 해야겠다. 내일도 파이팅!
참고 :
[C#] 숫자앞에 0붙이기
1. PadLeft 함수 사용 int value = 100; string result = Convert.ToString(value).PadLeft(5, '0'); MessageBox.Show(result); 2. string.Format 함수 사용 int value = 100; string result = string.Format("{0:D5}", value); MessageBox.Show(result); 3. ToString
acpi.tistory.com
'스파르타 Unity 1기' 카테고리의 다른 글
내일배움캠프 10일차 TIL - TextRPG 만들기 2 (0) | 2023.08.21 |
---|---|
내일배움캠프 2주차 WIL - 알고리즘과 C# 게임 구현 (0) | 2023.08.20 |
내일배움캠프 8일차 TIL - 알고리즘 과제 (0) | 2023.08.17 |
내일배움캠프 7일차 TIL - 스네이크 게임과 블랙잭 (0) | 2023.08.16 |
내일배움캠프 1주차 WIL - 미니 프로젝트 (0) | 2023.08.14 |