2011-09-11 2 views
0

두 개의 분할 패널을 서로 내부에 중첩시켜 있습니다. 문제는 센터 패널 내부에 8x8 타 일식 게임을 렌더링하는 것입니다. 기본적으로 패널의 높이와 너비는 8의 홀수 배수가되어야하므로 센터 타일을 쉽게 표시 할 수 있습니다. 내가 VB.net을 사용하고리사이징을 8의 홀수 배로 강제 적용

그래서 모든 .NET 솔루션 허용 : 죄송

편집, 즉 약간의 혼동했다 ... 내 말은

, 나는 너비와 높이를 필요 숫자로 8을 곱한 값은 홀수 여야합니다.

편집 다시 아래의 숫자는 크기를 참조하지 않습니다. 그들은 두 숫자가 곱 해지는 것을 말합니다. 나는 이것을 * 표시로 변경했습니다. 아래의 숫자는 높이와 너비 모두에 적용됩니다. 하나 개의 번호가 홀수해야 다른 8 8 * X

* 8

5 - 좋은

6 * 8 - 나쁜

+0

무엇입니까? 나는 8의 모든 배수가 ... 심지어 나는 무엇인가 놓치고 있다고 생각했다? – corsiKa

+0

나는 실제 질문이 무엇인지 모르겠다. - 짝수, inc 또는 dec을 사용하면 이상하게 만든다. 그러나 아니오, 당신은 너비와 높이가 8로 나눌 필요가 있다는 것을 의미하지는 않습니다. –

답변

1

뭔가 수를 모드 2를 수행하여 홀수 인 경우 당신은 확인할 수 있습니다. 그럼 그냥하십시오

if number mod 2 == 1: 
    code for board 
0

너는 높이와 너비가 모두 8로 나눌 필요가 있다고했지만 너의 예제에서는 높이 만 나눌 수 있다고하셨습니다. resize 이벤트 핸들러에

곳이 : 어쨌든 여기 한 가지 방법이다

Dim Height as Integer = SplitControl1.Panel1.Width 
    If Height mod 8 <> 0 then 
    Height -= (Height mod 8) 
End If 

Height += 9 //This ensures that the Height is not 0 and still is divisible by 8 + 1 (to be odd) 

Dim Width as Integer = SplitControl1.Panel1.Width 
If Width mod 8 <> 0 then 
    Width -= (Width mod 8) 
End If 

Width += 9 //This ensures that the Width is not 0 and still is divisible by 8 + 1 (to be odd) 

마지막

SplitControl1.Panel1.Width = Width 
SplitControl1.Panel1.Height = Height 
+0

나는 이것을 나의 OP에서 다시 설명했다. 혼란을 드려 죄송합니다. 패널을 8x8 사각형으로 분할했다고 상상해보십시오. 가로 질러가는 타일의 수가 홀수 여야하지만 8x8 크기의 전체 사각형도 볼 수 있어야합니다 (정사각형의 절반이 아닌). – FreeSnow