2016-08-12 2 views
0

현재 자바 스크립트 + HTML5 캔버스로 멀티 사이드 프로젝트로 멀티 플레이어 체스 게임을 만들고 있습니다. 저는 이사회를 대표하는 가장 좋은 방법이 무엇인지 알고 싶습니다.체스 게임을위한 객체 대 2D 배열을 자바 스크립트로 만들기

옵션 1 : 2D 객체 배열 - 모든 보드 조각에 공통적 인 일부 기능을 가진 조각 모듈이 있습니다. 나는 조각으로부터 물려받은 모든 조각들을 대상으로한다. - 그러면 총 32 개의 물체로 구성된 2D 배열을 만들고 보드에서의 위치를 ​​설정할 수 있습니다.

옵션 2 : 2D 배열- 특정 정수가 주어진 조각을 나타내는 2D 그리드를 간단하게 만들 수 있습니다.

어떤 옵션이 '최상'인지 또는 더 나은 옵션이 있습니까? 전반적으로 OO 접근법을 사용하려고합니다.

모든 입력을 확인할 수 있습니다. 고마워.

+0

옵션 1은 가장 융통성이 있습니다. 각 객체에는 조각을 식별하는 정수가 포함될 수 있지만 조각 유형, 흰색 또는 검정색과 같은 정보도 포함될 수 있습니다 : 조각 = [{id : 1, side : 'white', type : '폰'}, ...] 두 가지 옵션을 사용하면 거의 제한을 두지 않는 것처럼 보입니다. 목표가 OO 전반적인 경우 개체와 함께 가야하는 것입니다! –

+0

개인적으로 2 차원 배열의 객체를 사용하여 어떤 위치에 어떤 조각이 있는지, 어떤 색을 상자에 넣었는지, 어떤 플레이어가 조각에 속하는지 등의 정보를 쉽게 얻을 수 있습니다. –

답변

1

OOP를 배우고 OOP를 배워 전체적으로 '좋네요'코드를 만들 수도 있습니다 ... 수천 또는 그 이상의 타일로 이루어진 상당히 큰 '보드'로 게임을 프로그래밍하는 경우 성능상의 이유로 정수 방식을 고려할 수 있습니다.

그러나 8x8 체스 판은 현대식 JS 통역사에게 아무 것도 아니므로 미친 듯이 나아질 수도 있습니다.

+0

32 개의 개별 객체를 만들 수 있습니까? 폰 개체, 기사 2 개 등) 또는 필요한 경우 6 개의 개체를 만들어 사용합니까? 두 번째 옵션은 위치를 저장하는 측면에서 까다로울 수 있지만 첫 번째 옵션에는 32 개의 변수가 필요합니다 ... – jebusayah

+0

다시 한번 말하지만 32 개의 변수는 큰 의미가 아닙니다. 분명히 전역 범위에서 그것들을 개별 변수로 저장하지 말고 보드를 나타내는 배열로 가져 가면 안됩니다 ... 빈 사각형은 단지'null'입니다. 일부는 당신이 움직일 수있는 객체로 채워질 것입니다. 다른 하나 등 –

+0

괜찮아, 고마워! – jebusayah

0

개체의 2D 배열은 int 배열보다 많은 데이터를 저장할 수 있으므로 더 나은 선택입니다. 예를 들어, 숫자 5와 6을 사용하여 흑백 폰을 나타내는 대신, type 속성과 color 속성을 가진 객체를 가질 수 있습니다.

0

내 생각에 보드를 표현하기 위해 오브젝트 배열을 사용하는 것이 더 편리합니다. 각 조각 오브젝트와 그래픽 표현 (CSS 클래스)을 쉽게 연결할 수있는 반면, 숫자를 사용하여 조각을 나타낼 수 있습니다. 더 복잡한 접근법과 OO가 아닙니다.

관련 문제