diff --git a/TicTacToeEx/T3EBoard.cpp b/TicTacToeEx/T3EBoard.cpp index ebd489c..812dc82 100644 --- a/TicTacToeEx/T3EBoard.cpp +++ b/TicTacToeEx/T3EBoard.cpp @@ -69,6 +69,9 @@ int T3EBoard::CPU() { int place = 0; + + if (m_Turn == 1 && m_NextPlayer == PLAYER1)return 1; + do { place = rand() % BOARD_SIZE; } while (m_Board[place] != NONE); @@ -81,18 +84,16 @@ //�ǂ̔Ֆʂ������Ɉ�ԑ傫���]���������炷���m�F�B //����:int node �ǖ�, in turn ���, int turn �^�[����,int depth ��ǂ݂̐[��,int state ��� //�߂�l�F�]���l -int T3EBoard::Minmax(int *node, int NextPlayer, int turn, int depth,int state) +int T3EBoard::Minmax(int *node, int NextPlayer, int turn, int depth) { - //printf("depth = %d ��MinMax�N��\n", depth); + //�t�̏ꍇ�]���l��Ԃ� if (depth == 0) { - //printf("�t�Ȃ̂�%d��Ԃ��܂�\n", this->CheckWin(node)); return this->CheckWin(node); } //���łɏ������‚��Ă���ꍇ�t�Ƃ݂Ȃ��ĕ]���l��Ԃ� if(CheckWin(node) !=0){ - //printf("���ɏ������‚��Ă���̂ŗt�Ƃ݂Ȃ���%d��Ԃ��܂�\n", this->CheckWin(node)); return this->CheckWin(node); } @@ -135,32 +136,26 @@ NextBoard[j] = NextBoards[k]; k++; } - //printf("depth = %d�ɂāA�ȉ��̔Ֆʂʼn��̃m�[�h�����܂�\n",depth); - //this->ShowBoard(NextBoard); if (CheckWin(NextBoard) != 0) { - val = this->Minmax(NextBoard, NextNextPlayer, NextTurn, (depth - 1), 1); + val = this->Minmax(NextBoard, NextNextPlayer, NextTurn, (depth - 1)); } else{ - val = this->Minmax(NextBoard, NextNextPlayer, NextTurn, (depth - 1), 0); + val = this->Minmax(NextBoard, NextNextPlayer, NextTurn, (depth - 1)); } if (NextPlayer == PLAYER1 && best1 < val) { best1 = val; - //printf("����depth = %d�ɂ�PLAYER = %d, best = %d�@�ɍX�V����܂���\n", depth,NextPlayer,best1); } if (NextPlayer == PLAYER2 && val < best2) { best2 = val; - //printf("����depth = %d�ɂ�PLAYER = %d, best = %d�@�ɍX�V����܂���\n", depth,NextPlayer,best2); } } if(NextPlayer == PLAYER1){ - //printf("depth = %d�ɂĒlbest = %d��Ԃ��܂�\n",depth, best1); return best1; } if (NextPlayer == PLAYER2) { - //printf("depth = %d�ɂĒlbest = %d��Ԃ��܂�\n", depth, best2); return best2; } } @@ -287,7 +282,7 @@ NextBoard[j] = m_Board[j]; } SetStone(NextBoard, i, m_NextPlayer, m_Turn); - printf("�u���ꏊ[%d]�̕]���l��[%d]�ł��B\n", i, Minmax(NextBoard, NextNextPlayer, NextTurn, 12,0)); + printf("�u���ꏊ[%d]�̕]���l��[%d]�ł��B\n", i, Minmax(NextBoard, NextNextPlayer, NextTurn, 12)); } } diff --git a/TicTacToeEx/T3EBoard.h b/TicTacToeEx/T3EBoard.h index 35c64ab..73e448b 100644 --- a/TicTacToeEx/T3EBoard.h +++ b/TicTacToeEx/T3EBoard.h @@ -22,7 +22,7 @@ void ShowBoard(); // �Օ\�� void SetStone(int place); // �R�}��u�� int CPU(); // CPU�̎v�l - int Minmax(int *node, int NextPlayer, int turn, int depth,int state);//Minmax�@�̎��{ + int Minmax(int *node, int NextPlayer, int turn, int depth);//Minmax�@�̎��{ int CheckWin(int *Board); // �󋵂ɂ�鏟�s�`�F�b�N int count_zero(int *Board); // �����z��̉”\�萔���Z�o void SetStone(int *Board, int place, int NextPlayer, int Turn); //�R�}��u��