2014-12-01 5 views
0

그래서 조금 검색했는데, 무엇을 검색해야할지 완전히 확신하지 못했습니다. 현재 "레벨 생성"코드를 작성하고 있으며 내 세대의 개체를 포함 할 개체를 만듭니다. 기본적으로 좌표에 의해 정의 된 "셀"클래스가 있습니다. 다음 영역에 여러 셀을 보유하는 "CellArea"클래스를 만들려고합니다. 이 셀이 직사각형이라면 간단 할 것입니다. 셀을 사용하면됩니다. 그러나 이것은 "L"모양 일 수 있기 때문에 (나는 그것을 2 개의 "회랑"으로 제한하는 것이 좋습니다.) 어떻게 그 일을 할 것입니까? 아니면 일종의리스트/콜렉션을하는 것이 더 효율적입니까? 당신이 뭔가처럼 보이는 것 가변 배열을 할 수 있다면2D 어레이 대 지그재그 어레이?

나는 ...

{0, 1, 2} 
{0, 1, 2} 
{0, 1, 2} 
{0, 1, 2} 
{0, 1, 2, 3, 4, 5} 
{0, 1, 2, 3, 4, 5} 
{0, 1, 2, 3, 4, 5} 

내가 내 질문에 명확하게 희망을 궁금 해서요? 분명히 [7, 6] 인 bidim 배열을 수행 한 다음 "null"장소를 채우지는 못합니다. 그러나 비효율적이지는 않습니까?

답변

0

물론 가능합니다!

int[][] jaggedArray = new int[7][]; 

jaggedArray[0] = new int[] {0, 1, 2}; 
jaggedArray[1] = new int[] {0, 1, 2}; 
jaggedArray[2] = new int[] {0, 1, 2}; 
jaggedArray[3] = new int[] {0, 1, 2}; 
jaggedArray[4] = new int[] {0, 1, 2, 3, 4, 5}; 
jaggedArray[5] = new int[] {0, 1, 2, 3, 4, 5}; 
jaggedArray[6] = new int[] {0, 1, 2, 3, 4, 5}; 

참조 : http://msdn.microsoft.com/en-us/library/2s05feca.aspx

+0

고마워 :) 지금 고려하는 데려 갈거야 : D 비록 나는 거 실제로 bidim 배열을 시작하고 우리의 필요를 얼마나 큰 볼 생각 해요 "이상한"영역이 있습니다. 나는 단지 2 "CellArea"를 사용하여 굴곡으로 복도를 정의합니다 :) 도움에 감사드립니다! – Jomik

+0

인접 배열은 배열 배열보다 훨씬 효율적이라는 점에 유의하십시오. 또한지도가 소문자 "h"모양 인 경우 지그재그 배열이 도움이되지 않습니다. 이 데이터에 여러 번 빠르게 액세스해야하는 경우 다른 배열을 참조하는 사람 (캐시 스 래싱)의 속도가 느려지므로 맵을 하나의 큰 배열로 유지하는 것보다 메모리 사용량보다 나쁩니다. – Agumander