// Server.h: interface for the CServer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SERVER_H__D4863101_EB3C_11D2_BF72_006008575F73__INCLUDED_)
#define AFX_SERVER_H__D4863101_EB3C_11D2_BF72_006008575F73__INCLUDED_

#include "Bag.h"	// Added by ClassView
#include "dict.h"
#include "Net.h"	// Added by ClassView

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

// Function that plays a game
UINT HostGame(LPVOID pParam);

// Function that joins a game
UINT JoinGame(LPVOID pParam);

typedef	enum { NONE, SERVER, PROXY } GameMode_t;
typedef enum{ LOCAL, NOBODY, NETWORK, COMPUTER } PlayerMode_t;

typedef struct player{
	CString szPlayerName;
	char chRack[8];
	PlayerMode_t PlayerMode;
	UINT nScore;
	CNet *pcNetSocket;
}Player_t;

class CGame  
{

public:
	void InitGame();
	void UpdateDisplay( int nType );
	CGame();
	virtual ~CGame();
	int ComputerPlayerGo();
	int RemotePlayerGo();
	int m_nCurrentPlayer;
	int m_nNextPlayer;
	CWnd * m_pcwndMsgHandler;
	CDict m_cDictionary;
	int LocalUserGo();
	HANDLE m_hEventGoFinished;
	HANDLE m_hEventUpdateFinished;
	HANDLE m_hEventGameFinished;
	HANDLE m_hEventFinishGame;

	Player_t m_Players[4];
	char m_pchBoard[226];
	CBag m_cBag;
	GameMode_t m_eGameType;

protected:

	
private:
};


#endif // !defined(AFX_SERVER_H__D4863101_EB3C_11D2_BF72_006008575F73__INCLUDED_)
