44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
에러가 났는데 원인을 찾기 힘듭니다ㅠㅠ
혹시 원인을 알 수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
22:30초경 point에 count수치가 다르게 나와 질문드립니다
영상에선 61개의 정보가 들어가있는데 해보니 65개로 나와서 영상을 뒤로 돌려가며 보는데 봐도 잘 모르겠어서 선생님께 질문드립니다 혹시 이런경우 보통 어떤문제가 원인인지 알 수 있을까요? 어디를 다시살펴봐야할지 감을 못잡겠습니다 ㅠㅠ 마지막에 실행해서 목적지까지 찾아가는거는 작동합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
RemoveAt 질문
16:33초 부터 진행하는 RemoveAt 관련 질문입니다. _data[i] = _data[i+1] 뒤에 있던 친구들이 앞으로 들어가는 부분은 이해했는데 17:45분 부터 18:20 말씀하시는 for문의 조건 Count, Count -1의 범위 부분을 제대로 이해하지 못하겠습니다 ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
우선순위 큐 관련 질문
Pop부분에서 if (_heap[left] > _heap[top] && left <= lastIndex) top = left; if (_heap[right] > _heap[top] && right <= lastIndex) top = right; 이렇게 적으면 인덱스가 초과 했다고 에러뜨고 강사님 입력하신 대로 if (left <= lastIndex &&_heap[left] > _heap[top]) top = left; if ( right <= lastIndex &&_heap[right] > _heap[top]) top = right; 입력하면 정상 출력되는데 조건문에서 AND니깐 상관없다고 생각이 드는데 왜 이렇게 서로 다른 결과가 나온는 건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
오류가 나는데 이유를 모르겠습니다..
오류가 이렇게 발생하는데..이유를 모르겠슴다..ㅠㅠ.. 이게..전 강의때 발생해서 처음부터 다시 강의 들으면서 작성을 했는데도 같은 오류가 뜨고 있습니다.. 저장파일이 문제 라서 오류 인거 같은데.. 어떻해야 할까요 비쥬얼 지웠다가 다시 깔아볼까요..?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
일반 배열의 시간 복잡도 질문드립니다
안녕하세요 6강까지 듣고 질문드립니다 강의를 통해 동적배열과 연결리스트에 대해서 1. add 2. 특정 인덱스 접근 3. remove 에 대해 각각 시간복잡도를 구하셨는데 일반 배열에 대해서는 1. 2. 3.에 대해 시간복잡도를 따로 알려주지 않으셔서 각각 복잡도가 어떻게 되는지 지적호기심이 차올라서 질문드립니다! 계산과정은 필요없더라도 결과만이라도 궁금하네요~^^
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
유니티 알고리즘 #2 3:45초 인덱스질문입니다.
한쪽만 tile[y,x+1]로 했더니 인덱스 넘었다고 떠서 생각나서 질문드립니다. 밑에 tile[y+1,x]로 했더니 되기는 하더군요. 그런데 인덱스를 생각해보면 그래도 넘는다고 생각합니다. 1. tile[size,size]로 25칸까지로 정의를 했는데 y+1은 인덱스번호가 25아닌가요? 2.지금 적다가 생각이 든건데 x,y가 짝수일때는 continue를 해줘서 인덱스가 괜찮은건가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
IComparable의 구현부 관련 질문입니다.
IComparable을 설명하시면서 class Knight : IComparable<Knight>에서는 public int CompareTo(Knight other) { if (Id == other.Id) return 0; return Id > other.Id ? 1 : -1; } 라는 IComparable의 구현부가 필요하다고 하셨는데 어째서 class PriorityQueue<T> where T : IComparable<T>는 위처럼 따로 구현부를 만들어주지 않았는데도 잘 작동하는 건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
그 환경설정 부분에서 프레임 처리할때 질문드립니다!!
그 프레임 처리하실때 currentTick을 System.Environment.TickCount 로 계속 받아주는데 프로그램 실행 시간이 길어지면 currentTick 부분이 오버플로우가 나지는 않나요?? 딱히 루프에서 0으로 초기화하시지는 않으신 것 같아서 질문드립니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
public List<TreeNode<T>> children { get; set; } = new List<TreeNode<T>>(); 가 프로퍼티인가요?
public List<TreeNode<T>> children { get; set; } = new List<TreeNode<T>>(); 가 프로퍼티인가요? '=' 앞에만 보면 프로퍼티랑 구조가 똑같은데 프로퍼티 뒤에 = new List<TreeNode<T>>(); 이런 식으로 값을 할당하는 걸 본 적이 없어서 헷갈리네요ㅠ
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
7분 40초쯤 BFS 예약과 관련된 질문입니다.
1번과 3번 중 예약 순서가 빠른 1번을 먼저 방문한다고 하셨는데, 그렇다면 1번이 예약 순서가 빠른 이유는 무엇인가요? 1,3번은 모두 0번과의 거리가 동일하다고 가정하셨는데, 거리가 동일하다면 예약 순서는 랜덤인가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
Astar open 배열에 관하여 질문있습니다.
항상 좋은 강의 잘 듣고 있습니다. 다름이 아니라 Astar 알고리즘에 대해서 복습하던 중 궁금한 점이 생겨 질문드리게 되었습니다. Astar 알고리즘에서 open 배열과 우선순위 큐를 사용하셨는데, 우선순위 큐를 사용하면 open 배열 없이도 구현할 수 있지 않나요? 조금 코드를 변형시켜 open 배열 없이 다음과 같이 구현해 보았습니다. open배열을 사용하는것에 대한 장점이 따로 있을까요? void AStar() { // U L D R UL DL DR UR int[] deltaY = new int[] { -1, 0, 1, 0, -1, 1, 1, -1 }; int[] deltaX = new int[] { 0, -1, 0, 1, -1, -1, 1, 1 }; int[] cost = new int[] { 10, 10, 10, 10, 14, 14, 14, 14 }; bool[,] closed = new bool[_board.Size,_board.Size]; // 삭제 //int[,] open = new int[_board.Size, _board.Size]; // OpenList //for (int y = 0; y < _board.Size; y++) // for (int x = 0; x < _board.Size; x++) // open[y, x] = Int32.MaxValue; Pos[,] parent = new Pos[_board.Size, _board.Size]; PriorityQueue<PQNode> pq = new PriorityQueue<PQNode>(); //open[PosY, PosX] = 10 * (Math.Abs(_board.DestY - PosY) + Math.Abs(_board.DestX - PosX)); //PQNode에 parent 추가 pq.Push(new PQNode() { F = 10 * (Math.Abs(_board.DestY - PosY) + Math.Abs(_board.DestX - PosX)), G = 0, Y = PosY, X = PosX, parent= new Pos(PosY, PosX)}); while (pq.Count > 0) { PQNode node = pq.Pop(); if (closed[node.Y, node.X]) continue; closed[node.Y, node.X] = true; //추가 parent[node.Y, node.X] = node.parent; if (node.Y == _board.DestY && node.X == _board.DestX) break; for (int i = 0; i < deltaY.Length; i++) { int nextY = node.Y + deltaY[i]; int nextX = node.X + deltaX[i]; if (nextY < 0 || nextY >= _board.Size || nextX < 0 || nextX >= _board.Size) continue; if (_board.Tile[nextY, nextX] == Board.TileType.Wall) continue; if (closed[nextY, nextX]) continue; int g = node.G + cost[i]; int h = 10 * (Math.Abs(_board.DestY - nextY) + Math.Abs(_board.DestX - nextX)); //삭제 //if (open[nextY, nextX] < g + h) // continue; //삭제 //open[nextY, nextX] = g + h; pq.Push(new PQNode() { F = g + h, G = g, Y = nextY, X = nextX, parent = new Pos(node.Y, node.X) }); //parent 추가 } } CalcPathFromParent(parent); } 읽어주셔서 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
강의와는 조금 거리가 있는 질문인데요
루키스님의 강의 항상 잘 보고 있습니다! 프로그래밍 기초부터 유니티까지 해서 여러번씩 돌리며 보고 있는데요. 물론 검색의 도움도 많이 받고 있습니다. 그런데 검색하다보니 이쪽 분야는 수학을 잘해야 한다고 하는 말들이 많더라구요. 물론 알고리즘 강의를 보니, 사고력? 논리력이라고 해야할까요? 이런 건 중요한거 같긴한데...이런것과 수학적 지식이 연관이 있는지.. 검색해봐도 다들 말이 다르더라구요. 어떤 사람은 중요하다고 하고, 어떤 사람은 아니라고 하고.. 또 누구는 수학 못하면 아예 이쪽으로는 올 생각도 말라고 하고, 누구는 또 아니라고 하고..너무 혼란스럽더라구요. 수학적 지식도 중요한건지...수학을 아예 못하면 안되는 건지...전문가이신 루키스님의 생각이 궁금합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
frontX, frontY, rightX, rightY 내 포지션 기준점
enum Dir { Up = 0, // 3 Left = 1, // 0 Down = 2, // 1 Right = 3,// 2 } // 현재 바라보고 있는 방향을 기준으로, 좌표 변화를 나타낸다. int[] frontY = new int[] { -1 , 0, 1, 0}; int[] frontX = new int[] { 0, -1, 0, 1 }; int[] rightX = new int[] { 1, 0, -1, 0}; int[] rightY = new int[] { 0, -1, 0, 1 }; frontY, frontX의 기준은 이해하였으나 , rightX와 rightY의 값들이 위와 같이 나뉘어진 이유를 알고 싶습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
플레이어 NullReferenceException 관련 질문
2분19초 Board.CS 파일 내부 Initialize 함수에서 _player = player; 대신에 Player _player = player;라고 선언하고 돌리면 NullReferenceException에러가 뜨는데 앞에 오브젝트명을 명시한 것은 작동이 안되고 오브젝트명을 생략한 녀석은 작동이 되는지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
몇일전까지 Ctrl + F5 누르면 미로생성 잘 되었었는데요.
몇일전까지 Ctrl + F5 누르면 미로생성 잘 되었었는데요. 갑자기 오늘 해보니깐 까만색 화면에 아무것도 표시되지 않습니다. 이럴땐 어떻게 해야할까요 아마도 코드에 문제가 있는건 아닌거같습니다
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
printTree 에서 마지막 리프노드일 경우 오류가 왜 나지 않나요?
static void PrintTree(TreeNode<string>root) { Console.WriteLine(root.Data); foreach (TreeNode<string> child in root.Children) PrintTree(child); } 디자인팀에 전투노드가 루트에 들어가면 전투를 출력하고 children이 null이라서 오류가 발생된다고 생각했는데 아니 더라구요 foreach문 쓸때 null check가 필요없나요?? 아니면 children멤버변수에 주소값이 들어가있고 리스트가 텅빈 상태여서 그런건가요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
리스트 디버그 질문입니다.
0번 노드에 새로운 노드의 경로가 추가됐을 경우를 가정해서 100, 101, 102, 103을 추가했습니다. 이게 출력을 하면 위에 사진처럼 잘 나오는데 디버그 할때는 추가된게 보이지가 않습니다. 뭐가 문제일까요..?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
다익스트라 알고리즘 질문이 있습니다.
알고리즘이 시작되는 while문 안에서 처음 하는 동작중에 가장 가까운 distance의 정점를 찾아서 선택하는 과정이 있는데요. for (int i = 0; i < 6; ++i) { // 이미 방문한 정점은 스킵 if (visited[i]) continue; // 아직 예약된 적이 없거나, 기존 후보보다 멀리 있으면 스킵 if (distance[i] == Int32.MaxValue || distance[i] >= closest) continue; // 이때까지 발견한 가장 가까운 후보이기 때문에 정보 갱신. closest = distance[i]; now = i; } 굳이 가장 가까운 후보를 찾아야 하는 이유를 잘 모르겠습니다. 어느 쪽을 선택하든 최종적으로는 distance가 가장 짧은 쪽으로 갱신 되는 결과가 나올 것 같은데.. (1번이 아닌 3번을 먼저 선택해도 3번이 선택됐을 때 1번 + 10이 더 가깝기 때문에 3번의 distance가 1번을 통하는 쪽으로 distance가 갱신될것 같은데 굳이 더 짧다는 이유로 1번을 먼저 선택.) 혹시 필수 작업은 아니지만 가장 가까운 후보를 선택하는 것이 최종적으로 가장 짧은 distance를 가질 확률이 높아지기 때문에 해주는 작업일까요? 아니면 반드시 필요한 작업인데 제가 제대로 파악을 못한 걸까요 도움 주시면 감사하겠습니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
지금 알고리즘은 먼 길부터 찾고 있는거죠?
안녕하세요. 추석연휴동안 열심히 다시 달리고 있습니다. 들을 때마다 친절하고 머리에 잘 들어오는 강의, 늘 놀라고 있습니다. 감사합니다. 그런데 현재 수업에 나온 길찾기 알고리즘은, 사실은 먼 거리부터 찾고 있는 것 맞나요? 프라이어리티 큐는 팝 하면 가진 것 중에 최대값을 꺼내고, 그 최대값은 F값으로, 먼 길이 예약 될 수록 F값이 클테고, 그래서 팝 하면 h값이 커지는 먼 길 방면부터 확인하게 되는 것 같아요. 맞을까요? 그래서 프라이어리티 큐를 역으로 만들어서 최소값부터 꺼내게 만들어 사용하면, 일단 도착점까지 가까워지는(h가 작은) 방향으로 먼저 길을 찾아봐서, 계산횟수가 줄어들기를 기대할 수 있을까요?