2012-06-19 6 views
0

Visual Basic에서 체스 멀티 플레이어 게임을 만들려고합니다. 그것의 2 명의 선수는 정상적인 방법으로 놀고 LAN조차를 통해서조차 놀 ​​것이다.
지금까지 보드 디자인을 마쳤습니다.체스 멀티 플레이어 게임 만들기

내 논리는
입니다. 먼저 사각형을 클릭하면 클릭 이벤트 처리기가 조각이 해당 사각형에 있는지 확인합니다. 그렇지 않으면 조각이 그 사각형으로 이동해야하는지 확인합니다. 둘다 음수이면 아무것도하지 않습니다.

이제 문제는 클릭 이벤트를 코딩하는 방법입니다. 또한 2 차원 배열을 사용하여 보드를 표현했습니다. 그러나 매 이동 후 위치를 어떻게 업데이트합니까? 법적 절차가 진행되고 있는지 확인하려면 어떻게해야합니까? 내가 추가하고 싶은 또 하나의 점은 조각을 클릭 할 때마다 가능한 법적인 사각형을 강조해야한다는 것입니다.

이 경우 내가 한 것은 모든 사각형의 모든 클릭 이벤트에 대해 조각이 있는지 확인했습니다. 조각이 있다면 If-Else-If 논리를 사용하여 조각에 가능한 모든 동작을 강조했지만 너무 복잡하고 너무 길다는 것이 밝혀졌습니다. 그리고 또 다른 문제는 사용자가 비어있는 사각형을 클릭하여 조각을 이동하면 어떻게되는지 알 수 있습니까?

도와주세요.

+0

사용중인 언어를 명확히하십시오. 당신은 'VBA'라고 태그를 붙였습니다. 그러나 질문은 "Visual Basic"만을 언급합니다. VB 및 VBA가 아닌 경우 VB6 또는 VB.NET을 사용하고 있습니까? – psubsee2003

+0

나는 VB.Net을 의미했습니다. 나는 그것이 VBA에 태그를다는 것에 내 부분에서 실수 였음에 틀림 없다고 생각한다. 죄송합니다. –

답변

1

"하지만 이동 할 때마다 위치를 어떻게 업데이트합니까?"

조각이 약

가 이동 될 : 조각이 그런 식으로 이동할 수 있습니다

확인합니다. (감독님이 대각선으로 만 움직일 수있는 것처럼)

팀 조각이 움직일 위치에 있지 않은지 확인하십시오.

이미 이동이 발생한 두 번째 배열을 만듭니다.

이동이 유효한지 확인하십시오. (그것의 차례하지만 당신의 왕이 죽일-수있는 하나 개의 이동 함께)

는 당신이 필요로이를 확인하려면

위치하여 왕

을 얻을 그리고 모든 가능한 움직임을 찾으려면 상대

이동이 왕 위치에 착륙 할 수 있는지 확인하십시오.

+0

시작 위치에 조각의 위치를 ​​저장하는 position이라는 배열을 만들었습니다. 하지만 나중에 어떻게 업데이트합니까? 사실, 나는 논리를 얻고 있지만 실제 구현에 문제가 있습니다. –

+0

이동이 적합한 경우 : 현재 위치의 내용을 변수에 저장하고 현재 위치의 내용을 삭제 한 다음 변수의 내용을 새 위치에 복사합니다. – Dzha

+0

그러나 법적 조치가 있는지 어떻게 확인합니까? 그 코드를 내게 줄 수 있니? –

0

이 질문은 정말 스택 오버플로에 적합하지 않은,하지만 난 당신에게 포인터를 줄 것이다 : 당신은이 IsWhiteLocationXLocationY 같은 특성을 갖습니다 ChessPiece

라는 클래스를 만들 필요가

Public Enum ChessPieceType 
    King 
    Queen 
    Bishop 
    Pawn 
    'etc 
End Enum 

당신은 아칸소의 일종을 작성해야합니다 : 그것은이 같은 열거 될 것입니다 보드와 PieceType에 현재 위치를 저장 ray를 사용하여 보드의 각 부분마다 하나씩 가지고 게임을 시작할 때이 위치를 수동으로 설정할 수 있습니다.

사용자가 확인 체스 조각의 유형 실제로이 이동할 수 있습니다 귀하 께서 PieceType 열거를 확인 조각을 이동하려고 할 때, 다음 등 등 그 광장에 자신의 작품 중 하나가없는 확인

관련 문제