<오늘의 계획>

1. 기능 수정

2. 콘솔 꾸미기

 

  • 기능 수정

인트로 멘트가 한 글자씩 출력되면 좋을 것 같아서 while문과 Thread.Sleep()을 통해 0.05초에 한 글자씩 나오도록 기본설정을 하고, 아무 키를 입력했을 때 스킵되도록 했다.Console.KeyAvailable은 bool값으로 어떤 키를 눌렀을 때 true를 출력한다. 이를 이용하여 값이 true가 되면 Thread.Sleep()의 속도를 다시 0으로 만들어주어 전체 멘트가 나오도록 했다.이 기능은 자주 사용할 것 같아서 메서드로 만들어주었다.

// 한글자씩 출력
static void OutputTxt(string txt) // string = Char(문자) 배열
{
    Console.ForegroundColor = ConsoleColor.Cyan;

    // 아무 키나 눌렀을 때 스킵
    int speed = 50;
    int txtCount = 0; // 글자수
    while (txtCount != txt.Length) // txt 글자수가 끝까지 나올 때까지
    {
        if (Console.KeyAvailable) // 아무 키나 눌렸을 때 true
        {
            speed = 0;
            Console.ReadKey(true);
        }
        Console.Write(txt[txtCount]); // 글자를 하나하나 가져올 인덱스
        Thread.Sleep(speed);
        txtCount++;
    }
}

// 적용
static void DisplayGameIntro()
{
	string startTxt = "스파르타 마을에 오신 여러분 환영합니다.\n이곳에서 던전으로 들어가기 전 활동을 할 수 있습니다.\n";
	OutputTxt(startTxt);
}

Console.Readkey( ) : 사용자가 눌린 키 한 문자 정보를 리턴하는 메소드

Console.KeyAvailable : 키 입력값의 참거짓 여부

 

  • 콘솔 꾸미기

콘솔 꾸미기 명령어

// 콘솔 배경
Console.BackgroundColor = ConsoleColor.색상;
Console.Clear(); // 화면 지우기

// 글씨색 변경
Console.ForegroundColor = ConsoleColor.색상;

// 글씨색 기본색으로 되돌리기
Console.ResetColor();

// 콘솔창 이름 설정
Console.Title = "콘솔창";

 

 

<추가>

- 코드에 필요한 클래스를 별도의 파일로 만들고 분리해보기

- Readme 작성하기

 

<마치며>

C#에 좀 더 친숙해지는 것에 중점을 맞췄어야했는데 많은 기능을 구현하고 싶은 욕심에 새로운 메서드를 찾아보고 탐구하는 것에 너무 시간을 할애했던 것 같다. 잘하는 분들은 시간이 남았기 때문에 여러 가지 추가기능을 구현했음을 항상 유의하고 초보자인 나는 문법 위주로 공부해야겠다.

 

 

+ Recent posts