예제 #1
0
파일: FormGame.cs 프로젝트: Ramlevy/othello
        private void enableLegalMoves()
        {
            List <int> list = new List <int>();

            if (m_gameLogics.m_PlayerTurn == 1)
            {
                list = m_gameLogics.LegalMovesToList(m_gameLogics.m_Player1, m_gameLogics.m_Player2);
            }
            else if (m_Settings.isVsAI == false && m_gameLogics.m_PlayerTurn == -1)
            {
                list = m_gameLogics.LegalMovesToList(m_gameLogics.m_Player2, m_gameLogics.m_Player1);
            }
            else if (m_Settings.isVsAI == true && m_gameLogics.m_PlayerTurn == -1)
            {
                m_gameLogics.ComputerMove(m_gameLogics.m_Player2, m_gameLogics.m_Player1);
                disableButtons();
                if (m_gameLogics.IsAnyLegalMoves(m_gameLogics.m_Player1, m_gameLogics.m_Player2) == true)
                {
                    m_gameLogics.m_PlayerTurn *= -1;
                    enableLegalMoves();
                }
                else if (m_gameLogics.IsAnyLegalMoves(m_gameLogics.m_Player2, m_gameLogics.m_Player1) == true)
                {
                    m_gameLogics.m_PlayerTurn = -1;
                    enableLegalMoves();
                }
                else
                {
                    m_gameLogics.endGame();
                }
            }

            for (int i = 0; i < list.Count / 6; i++)
            {
                m_ButtonBoard[list[(i * 6)] - 1, list[(i * 6) + 1] - 1].Enabled = true;
                m_ButtonBoard[list[i * 6] - 1, list[(i * 6) + 1] - 1].BackColor = Color.Gray;
            }
        }