2011-11-03 4 views
-3

저는 C++을 사용하여 Sorry! board 게임을 구현하려고했는데, 4 명의 플레이어 (컴퓨터 중 하나를 플레이어로 포함)가 네트워크를 통해 게임을 할 수 있고 플레이어를위한 점수 보드와 메시지 보드도 있습니다. 채팅하기.죄송합니다! C++의 보드 게임

주요 아이디어는 C++에 대한 나의 이해를 구체화하고이 게임을 구현하는 동안 거의 모든 OOP 개념을 사용하는 것입니다.

문제를 클래스로 나누려고 시도했는데 두 가지 질문이있었습니다. 1. 각 플레이어의 녹색, 노란색, 파란색, 빨간색 각자 4 조각입니다. 각 조각은 클래스 또는 green1 클래스, green2 클래스입니까 ..... 아니면 각 색상이 클래스이고 동일한 색상의 각 요소가 클래스의 인스턴스 일뿐입니다. 2. 이와 비슷한 일반적인 문제를 클래스로 나누기 시작하려면 어떻게해야합니까?

+3

당신이 좋아하는 소리는 정말 질문이 없지만 C++ OOP에 좋은 책이 필요합니다. 전체적으로 SorryGame 클래스, SorryPlayer 클래스 및 SorryPiece 클래스가 필요합니다. SorryPiece 클래스에는 어떤 색인지 또는 어떤 플레이어가 속한 플레이어인지를 결정하는 특성이 있습니다. – miahelf

+1

이 질문에도 불구하고, 사람들이 당신을 낙담하게하지 마십시오. 미안한 게임은 모든 목표만큼이나 좋은 목표입니다. 하지만 StackOverflow에서 네트워크 연결을 설정하고 언젠가 게임 내 AI를 갖기를 희망하는 것은 피해야합니다. (목표 언어에 대해 많이 모르는 사람의 그러한 야망은 비웃지 않는다 ... 존경하지 않는다.) 어쨌든, C++에서 생각하는 것보다 더 간단한 샘플을 작성하고 작업하는 것이 좋습니다. 여기 묻는 질문을 심사숙고하기 위해 훨씬 확고한 기반 위에 설 것입니다 ... – HostileFork

답변

4

시작 객체로 생각하고있는이 같은의 방식 종류의 "가"의 "가"

게임 조각 객체

플레이어는 또 다른 목적이다.
플레이어에는 4 개의 게임 조각이 있습니다.
플레이어의 색상은

입니다. gameboard는 객체입니다.
게임 보드에는 공백이 있습니다.
게임 보드에는 4 명이 있습니다.

등등. "is a"와 "has a"방식으로 사고하는 데 익숙해지면 쉽게 익숙해집니다. 또한

가장 낮은 수준으로 일을 파괴하려고 - 모든 플레이어가 색상이있는 경우, 어쩌면 플레이어는 색상을 가진 개체 수, 대신 4 플레이어 객체의 색상을 기반으로한다

이 (I를 수행)이 적절한 C/C++ 코드 아니라는 것을 알고,하지만 십오을 보여줍니다

class Player 
{ 
string Color; 
Piece[] Pieces[4]; 
} 

대신

class RedPlayer 
{ 
RedPieceOne Piece1 
RedPieceTwo Piece2 
} 
class GreenPlayer 
{ 
} 

등을