2017-02-16 1 views
0

메신저 테트리스 리메이크를 쓰고 있고 내 블록을 표시하는 데 약간의 문제가 있습니다. 그래서 기본적으로 2 차원 배열 (예 : [0,0]은 col = 0, row = 0의 사각형)에 모든 사각형 (직사각형)을 저장하고 표시/숨기기를 위해 가시성 속성을 변경합니다. 목록에 표시 할 블록을 저장합니다.목록 크기에 따라 개체 표시

 public void DisplayStationary(List<int> stationaryBlocks) 
    { 
     rectangles[stationaryBlocks[0], stationaryBlocks[1]].Visibility = Visibility.Visible; 
     rectangles[stationaryBlocks[2], stationaryBlocks[3]].Visibility = Visibility.Visible; 
     rectangles[stationaryBlocks[4], stationaryBlocks[5]].Visibility = Visibility.Visible; 
     rectangles[stationaryBlocks[6], stationaryBlocks[7]].Visibility = Visibility.Visible; 
    } 

이이 때 표시 만 4 개 사각형 (8 개 항목 모습입니다 : 여기에 (그냥 작동하는 방법을 보여 4 개 사각형을 위해 하드 코딩) 순간 이동되지 않는 영역을 표시하기 위해 가정 내 방법입니다 목록에서),하지만 블록의 목록이 커짐에 따라 동적으로 변경되기를 원합니다. 예를 들어 8 개의 직사각형을 표시하려면 목록에 16 개의 항목이 표시됩니다.

내 방법을 어떻게 변경해야합니까?

답변

1

그냥

for(var i = 0; i < stationaryBlocks.Count(); i=i+2;) { 
    // don't use i++ for "second" block as that is assignment and will mess up the loop 
    rectangles[blocks[i], blocks[i+1]].Visibility = Visibility.Visible; 
} 
+0

너무 감사합니다 당신의 Display(List<int> blocks) 방법의 내부를 위해 이것을 사용, 그것은 작동! 글쎄 그것은 꽤 명백한 해결책이었습니다. – Heisenberker

관련 문제