Newer
Older
ss1_TicTacToeEx / TicTacToeEx / T3EBoard.h
#pragma once

// TicTacToeEx ゲーム管理クラス
class T3EBoard
{
	static const int BOARD_WIDTH = 3;	// 盤の幅
	static const int BOARD_HEIGHT = 3;	// 盤の高さ
	static const int BOARD_SIZE = BOARD_WIDTH * BOARD_HEIGHT;	// 盤のサイズ
	static const int MAX_PIECE_ON_BOARD = 3;	// 盤上に存在できるコマの数
	static const int MAX_TURNS = 99;	// 最大ターン数
	static const int NUM_PLAYERS = 2;	// プレイヤー数
	enum { PLAYER1 = 0, PLAYER2 = 1 };
	enum { PLAYER_HUMAN = 0, PLAYER_CPU = 1 };
	enum { NONE = 0, STONE1 = 1, STONE2 = -1 };

	int m_Board[BOARD_SIZE];	// 盤の状態 0:なし 正:先手コマ 負:後手コマ 値:置いたターン数
	int m_Turn;					// ターン
	int m_NextPlayer;			// 次の番 PLAYER1 or PLAYER2
	int m_Player[NUM_PLAYERS];	// プレイヤー 0:人間 1:CPU

	void Reset();				// ゲーム初期化
	void ShowBoard();			// 盤表示
	void SetStone(int place);	// コマを置く
	int CPU();					// CPUの思考
	int Human();				// 人間の手番
	int CheckWin();				// 勝利判定
public:
	T3EBoard();					// コンストラクタ
	~T3EBoard();				// デストラクタ
	void Play();				// ゲーム進行
};