[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
수강정보
(19개의 수강평)
478명의 수강생
44,000원
지식공유자 : Rookiss
25회 수업 · 총 6시간 45분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 초급
도곡 프로필

Board에서 Player 선언에 대한 질문입니다 도곡 21일 전
Program의 static Main 내부에 선언된 Player player = new Player();가 새로운 플레이어로 생성된 것은 이해했습니다. 하지만 Board에서 Player _player = new Player();라고 선언하지 않고 짧게 Player _player;라고 선언하셨는데,  Player _player = new Player();와 Player _player;를 둘 다 써봤는데 프로그램이 문제없이 작동합니다 new를 쓰고 안쓰고의 차이점이 궁금합니다

2
Wether Spoons 프로필

플레이어를 여러 명 만드려면 어떻게 해야 할까요...? Wether Spoons 26일 전
안녕하세요! 선생님의 강의를 열심히 들으면서 스스로 응용해보려고 노력중입니다! 지금 강의의 코드를 기반으로 플레이어를 몇 명 생성할 것인지 물어본 후 (int numbofplayers = Convert.ToInt32(Console.ReadLine());) numberofplayers 만큼 플레이어를 여러 명 생성하려고 하는데... (플레이어 1번, 플레이어 2번, ... , 플레이어 numberofplayers번) 그리고 이렇게 생성한 플레이어들을 모두 다 한 보드 위에 렌더될 수 있도록 하려면 어떻게 해야할까요? 혹시 어디에 어떤 코드를 추가하면 될지 알려주신다면 자료구조를 이해하는 데에 큰 도움이 될 것 같습니다!!! 

1
Dev. Han 프로필

속도에 관해.... Dev. Han 1달 전
혹시.. 컴퓨터마다 프레임 속도의 차이가 크게 날 수가 있나요? 처음엔 제가 코드를 잘못쳐서 점의 속도가 느린거라고 생각하고 무시하고 진행해왔는데... 강사님 코드를 직접 다운로드받아서  돌려보기도 하고 그랬는데 도착 지점에 도달 하기까지 약 2분의 시간이 걸립니다.... (이리저리 왔다갔다 해서 늦는데 아니라 1~2초에 한칸씩 움직임) (사진 첨부) (Wait_Tick을 1000/30 으로 하건 1000/60, 1000/5000 같이 큰숫자를 해도 똑같음) 컴퓨터가 그렇게 저사양이라고 생각되지는 않은데... (그냥 평균정도??) 강의자님 코드 자체를 하나도 안건드리고 실행해봤으므로 코드의 문제는 확실하게 아니구... 왜 저는 느리게 작동하는 걸까요..? (CPU? RAM? 비쥬얼 스튜디오 설정?) 혹시 몰라 이미지를 첨부했습니다. 프로그램도 돌리는게 많이없는데 혹시 몰라서 사용하던 아톰 에디터나 구글드라이브 등 모든 응용 프로그램을 끄고 진행해도 별다른 효과가 없습니다. 혹시 이런 경우를 겪어보신적이 있나 해서 여쭈어봅니다... 비쥬얼 스튜디오 설정의 문제일까요 아니면 컴퓨터를 새로 사야하는 문제일까요..  강의를 지속하는데는 당장은 크게 문제가 되진 않지만 앞으로도 계속 쓰려면 아무래도 필요할 것 같아서 혹시 몰라 문의드립니다..

1
시슴 프로필

A* 알고리즘 질문드립니다 시슴 1달 전
안녕하세요  매번 좋은 강의 해주셔서 감사합니다 다름이 아니라  A* 알고리즘 수업 내용에 관해 질문드립니다. A* 알고리즘에서 PriorityQueue 를 이용해서 구현하셨는데 PriorityQueue 의 노드로 PQNode 를 선언? 구현하셨는데 앞서 동적배열 수업에서 등등 노드들은 class 형태로 구현을 하셨는데 왜 PQNode는 struct 로 구현하셨는지 궁금합니다 struct 를 class로 변경해도 실행 결과는 같은데 struct로 PQNode를 구현한 이유를 알려주실수 있으신가요? (struct로 꼭 구현을 해야된다거나 struct가 class 보다 더 나은점이라든지 등등) 답변 부탁드리겠습니다

2
시슴 프로필

우선순위 큐 마무리 강의에서 IComparable<Knight> 부분 질문드립니다. 시슴 1달 전
안녕하세요  날씨가 더운데 고생이 많으십니다. 다름이 아니라 질문이 있어 여쭤보고자 합니다. 우선순위 큐 마무리 강의에서 6분 30초 이후에서부터 우선순위 큐를 int형 뿐만 아니라 다른 형태에서도 사용할 수 있게 ( class 등) 제네릭을 사용하셨는데 이해가 안되는 부분은 먼저 코드를 보자면  1. class PriorityQueue<T> where T : IComparable<Knight> { ... }  class Knight : IComparable<Knight>  { ... }  ... 이 코드내용인데 여기서 이해 안되는 부분은 class PriorityQueue<T> where T : IComparable<Knight> 에서 where T를 사용하셨지만 왜 class Knight : IComparable<Knight>에선 where T를 사용하지 않으신가요? 정리하자면  왜 PriorityQue 클래스 에서는 where T 를 쓰셨고 Knight 클래스에서는 where T를 사용하지 않은 이유가 궁금합니다 2.  class Knight : IComparable<Knight> 에서 인터페이스를 구현하지 않아 에러가 나서 Knight 클래스에서 public int CompareTo(Knight other) { if (Id == other.Id) return 0; return Id < other.Id ? 1 : -1; } 라는 인터페이스를 구현했는데 왜 class PriorityQueue<T> where T : IComparable<T>에서는  따로 인터페이스를 구현 안해도 에러가 나지 않는 이유가 궁금합니다 같은 인터페이스인 IComparable<T> 를 사용하면 Knight 클래스와 마찬가지로 PriorityQueue 클래스에서도 인터페이스를 구현해야 맞지 않나요??? 질문에 대한 답변좀 부탁드리겠습니다.  바쁘신데 시간 뺏어 죄송합니다.

2
Dev. Han 프로필

커스텀 MyLinkedListNode에 대해 + @ Dev. Han 1달 전
1. C#에서 제공하는 LinkedListNode는 중간 모드가 없어서 O(N)이라고 하셨는데.. 그렇다면 한번에 N번쨰 방을 찾고싶은 상황이 온다면 LinkedListNode는 버리고 지금 구현하신 MyLinkedListNode를 사용하면 되는건가요?  2. 그리고 배열에 대한 강의가  해당 파트에서는  여기가 마지막인듯한데  다음 파트들에서도 배열에 관한 것들 쭉 다루시나요?? 배열이 어디에 어떻게 쓰이는지는 감이 대충은 잡은 것같지만 어떤 상황에서 배열,동적배열,연결리스트를 쓸지 좀더 알았으면 하는 바램이네요.

1
Sanghyun Lee 프로필

circle 출력 Sanghyun Lee 1달 전
저처럼 맥북 쓰시는 분들은 '\u25CF' 이걸로 출력하시면 강의내용과 같은 모양이 출력됩니다. 

1
태사단 프로필

연결 리스트 강의에서 Remove 함수 문의드립니다 태사단 2달 전
섹션1 - '연결 리스트 구현 연습' 강의에 대한 질문입니다. 위와 같이 Remove를 구현했습니다. (강의에서 head, tail에 해당하는 변수명은 first, last로 선언했습니다) 1) 삭제하려는 방이 첫 번째 요소인지와 이전 방이 null인지를 두 번 체크하는데, 그렇게 하지 않으면 예외가 발생하지 않는지 궁금합니다. (즉 위와 같이 if문을 작성하면 에러가 날 수 있나요?) 2) 삭제하려는 방을 따로 null처리할 필요는 없나요? room = null을 적어보니 사용되지 않는 코드처럼 회색으로 떠서요.

4
이창현 프로필

root 노드 아래를 중괄호로 나누는 이유가 궁금합니다. 이창현 2달 전
안녕하세요 이 코드에 있는 중괄호는 root를 생성하고 동시에 Data값을 "R1개발실"이라고 초기화 해주는 이니셜라이저라는 것 까지는 이해했는데요 그밑에 다시  중괄호를 열어서 그 안에 node를 생성한 이유를 잘 모르겠습니다.  아래와 같이 중괄호 없이 실행해봐도 root의 children으로 node가 들어가는 것은 같던데 트리구조를 나타내기위해 쓰는 건가요? 

1
이창현 프로필

회전시키는 식 질문입니다 이창현 2달 전
12:50초에 오른쪽방향으로 회전하는 식 _dir = (_dir -1+4) % 4; 에서 +4하는 이유가 -1을 하므로 양수를 만드려고 더한거라고 하셨는데 왼쪽방향으로 회전하는 식 _dir = (_dir +1+4) % 4; 에서는 _dir에 +1을 하므로 음수가 될일이 없으니까 +4를 안해줘도 상관없을까요? 혹시 음수가 될일이 없더라도 +4를 해주는게 좋나요?

1
mithra june 프로필

머리로는 이해가 안되네요... mithra june 2달 전
그래프 음 그렇지..하다가 DFS,BFS 응??? 아 뭔가 탐색을 하는구나 잉? 이게 길찾기 최단거리 알고리즘이야?...강의를 보면 끄덕끄덕하지만 머리속으로는 곰곰이 생각해봐도 너무 비약적이라 이해가 안가네요... 저는 한계가 여기까지인가봅니다..

2
김성민 프로필

Board와 Program에서 Player를 선언할때 질문입니다. 김성민 3달 전
Board클래스에서는 Player _player; 라고 쓰신 후에 이니셜라이즈에서 바로 _player = ~~~라고 하셨는데 Program클래스에서는 Player player = new Player(); 라고 쓰신 후에 Initialize(size, player); 라고 하셨습니다. Program에서 Board처럼 선언했더니 오류가 났습니다. 둘의 차이가 뭔가요? 메인함수가 아니면 Player _player; 처럼 선언할수 있는건가요?

1
김성민 프로필

렌더링 과정에서 질문입니다. 김성민 3달 전
Render()함수에서 ConsoleColor prevColor = Console.ForegroundColor; 이렇게 임시저장 해줬다가 Console.ForegroundColor = prevColor; 이렇게 이전 상태를 복원한다고 하셨는데 복원을 한다는게 정확히 무슨 뜻인가요? 이렇게 복원을 하지 않으면 무슨 문제가 있나요?

1
김성민 프로필

17:10 부근에 if(room.Prev != null)부분 질문입니다. 김성민 3달 전
위에서 Tail인 경우와 Head인 경우에 대해서 체크를 해주었는데 그 경우가 아닌 상황(방이 중간에 있는 상황)에서 선택된 방의 Prev와 Next가 null일수가 있나요? 널값에 대한 체크를 한다고 하셨는데 제대로 연결리스트가 이어졌다면 null값을 왜 체크하는지 궁금해서 여쭤봅니다. 감사합니다

1
K 프로필

Next(0,4)가 맞는거 아닌가요? K 4달 전
0부터 3까지의 case만 있어도 괜찮을것 같은데, 그러면 랜덤함수 매개변수로 (0,4)로 넣어주면 0부터 3까지 되니까 되는것 아닌가요?

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스