inflearn logo
강의

Course

Instructor

[MMORPG Game Development Series with C# and Unity] Part 2: Data Structures and Algorithms

25x25 초록색 원이 안나와요

494

teawon12348107

2 asked

0

강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)

질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. 
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!

구체적인 질문일수록 명확한 답을 받을 수 있어요.
• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.

기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. 
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. 
• 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 

using System;

namespace Algorithm

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.CursorVisible = false;

            const int WAIT_TICK = 1000 / 30;

            const char CIRCLE = '\u25cf';

            int lasttick = 0;

            while (true)

            {

                #region 프레임 관리

                // 만약 경과한 시간이 1/30초보다 작다면

                int currentTick = System.Environment.TickCount;

                if (currentTick - lasttick < WAIT_TICK)

                    continue;

                lasttick = currentTick;

                #endregion 

                // 입력

                // 로직

                // 렌더링

                Console.SetCursorPosition(0, 0);

                for (int i = 0; i < 25; i++)

                {

                    for (int j = 0; j < 25; j++)

                    {

                        Console.ForegroundColor = ConsoleColor.Green;

                        Console.Write(CIRCLE);

                    }

                    Console.WriteLine();

                }

            }

        }

    }

}

강의들으면서 이렇게 코드작성을 했는데 이상태에서 실행하면 초록색원이 안나오고 프레임관리부분을 주석처리하면 나오네요 

뭐가 문제일까요?

C#

Answer 4

2

Rookiss

int currentTick = Environment.TickCount & Int32.MaxValue;
로 수정해보시기 바랍니다.

공식 문서를 보니 C#의 TickCount는 49.8일마다
Int32.MinValue에서 Int32.MaxValue로 왔다 갔다 하는군요.
(저도 처음 알았습니다 -_-)

https://docs.microsoft.com/en-us/dotnet/api/system.environment.tickcount?view=netcore-3.1

2

teawon12348107

확실히 System.Environment.TickCount는 -1188076562의 값이 나오고 currentTick 부분은 -1188077187 이렇게 나오네요.. 그램노트북이라 윈도우즈 환경인데도요.. 
답변 감사합니다~

1

Rookiss

확인해보니 제 환경에서는 재현이 안되는 문제입니다.

실행환경이 다른 것으로 보이는데, 혹시 Mac OS를 사용하시나요?
아무튼 로직상 유일한 가능성은 TickCount 값이 정상적이지 않은 상황인데요.

int currentTick = System.Environment.TickCount;

다음 줄에 BreakPoint를 걸어서 TickCount 값을 확인 바랍니다.
아마도 저 부분에서 반환값이 이상해서 
그 다음에 등장하는 if 문에서 항상 continue로 걸러지는 것 같네요.
왜 저 부분이 다르게 동작하는지는 환경에 따라 다르기 때문에 알 수 없지만
일단 알고리즘 수업과 프레임 관리는 딱히 연관성이 없으니
프레임 관리 부분을 그냥 다 삭제하고 진행하셔도 무방합니다.

감사합니다.

0

teawon12348107

말씀해주신대로 수정하니 문제가 해결됐네요 감사합니다~

게임개발에서 주로 어느부분에 알고리즘들이 쓰이는지 궁금합니다

0

291

2

글꼴 바꿔도 자간이 좁아 찌그러져보이시는 분들

1

159

1

NullReferenceException 예외) 같은 실수하시는분 계실까봐 남겨요

0

134

1

parent를 Pos타입으로 만든 이유

0

121

1

콘솔창에 격자가 안나옴 미로 생성 X

0

194

1

격자 생성 안됨 무한루프

0

172

1

BFS 질문

0

201

2

격자 무한 출력

0

237

2

A* 의 PriorityQueue 관련 질문입니다

0

211

2

vscode에서 원그리기

0

230

1

환결설정 강의 원 그리기

0

175

1

15-17분

0

140

1

3:16초에 근데 이렇게 해가지고 부분에 "{}"를 만들어서 자식 node들을 생성하던데 왜 중괄호로 감싸게 만드는 건가요?

0

194

2

동적 배열 관련 질문입니다!

0

260

1

Big-o 표기법에서 시간 복잡도

0

213

1

7:40에서 언급하신 색상이 날아가는 문제 이해를 못하겠습니다

0

194

1

트리구현연습 강의 질문있어요

0

191

1

창은 뜨는데 맵이 나타나지 않아요.

0

234

1

Ctrl F5 하면 나오는 창은 어디서 설정할까요??

0

342

1

void CalcPathFromParent(Pos[,] parent)에 대해서

0

259

2

NullReferenceException예외가 발생했을때 어떻게 해야하나요?

0

256

1

[해결] 환경설정 강의에서 원이 이상하게 그려지는 문제

3

369

2

오른손 법칙에서 플레이어 점이 안 움직입니다

0

291

2

맵 만들기 오류

0

218

1