示例#1
0
 public Player(string i_Name, eNumSquare i_SquareType, int i_Score)
 {
     r_Name          = i_Name;
     m_PossibleMoves = new List <Coords>();
     r_SoldierType   = i_SquareType;
     m_Score         = 2;
 }
示例#2
0
 private void updateOrCheckDirctionPathDueToMove(int i_CordX, int i_CordY, int i_DirctionX, int i_DirctionY, eNumSquare i_SoldierType, ref bool io_NeededToUpdateSquare, bool i_PaintTheSquare, bool i_IsFirstOcurrance)
 {
     if (IsSquareExceedBoard(i_CordX, i_CordY) || m_Board[i_CordX, i_CordY] == eNumSquare.EmptyCell)
     {
         io_NeededToUpdateSquare = false;
     }
     else if (m_Board[i_CordX, i_CordY] == i_SoldierType)
     {
         if (!i_IsFirstOcurrance)
         {
             io_NeededToUpdateSquare = true;
         }
         else
         {
             io_NeededToUpdateSquare = false;
         }
     }
     else
     {
         i_IsFirstOcurrance = false;
         updateOrCheckDirctionPathDueToMove(i_CordX + i_DirctionX, i_CordY + i_DirctionY, i_DirctionX, i_DirctionY, i_SoldierType, ref io_NeededToUpdateSquare, i_PaintTheSquare, i_IsFirstOcurrance);
         if (io_NeededToUpdateSquare && i_PaintTheSquare)
         {
             m_Board[i_CordX, i_CordY] = i_SoldierType;
         }
     }
 }
示例#3
0
        public void MakeMove(Coords i_Coord)
        {
            eNumSquare playerSoldier = m_Players[m_PlayerTurn].SoldierType;

            m_OtheloBoard.SetSquare(i_Coord, playerSoldier);
            m_OtheloBoard.UpdateBoard(i_Coord, playerSoldier);
            SwitchTurn();
            UpdatePossibleMovesForBothPlayers();
            updateScoreForBothPlayer();
        }
示例#4
0
        public bool IsLegalToFill(Coords i_Coord, eNumSquare i_SoldierType)
        {
            bool[] dirctionPath         = new bool[8];
            bool   neededToUpdateSquare = false;
            bool   paintTheSquare       = false;
            bool   isFirstOcurrance     = true;

            updateOrCheckDirctionPathDueToMove(i_Coord.X - 1, i_Coord.Y, -1, 0, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[0] = neededToUpdateSquare;

            updateOrCheckDirctionPathDueToMove(i_Coord.X - 1, i_Coord.Y + 1, -1, 1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[1] = neededToUpdateSquare;

            updateOrCheckDirctionPathDueToMove(i_Coord.X, i_Coord.Y + 1, 0, 1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[2] = neededToUpdateSquare;

            updateOrCheckDirctionPathDueToMove(i_Coord.X + 1, i_Coord.Y + 1, 1, 1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[3] = neededToUpdateSquare;

            updateOrCheckDirctionPathDueToMove(i_Coord.X + 1, i_Coord.Y, 1, 0, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[4] = neededToUpdateSquare;

            updateOrCheckDirctionPathDueToMove(i_Coord.X + 1, i_Coord.Y - 1, 1, -1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[5] = neededToUpdateSquare;

            updateOrCheckDirctionPathDueToMove(i_Coord.X, i_Coord.Y - 1, 0, -1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[6] = neededToUpdateSquare;

            updateOrCheckDirctionPathDueToMove(i_Coord.X - 1, i_Coord.Y - 1, -1, -1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
            dirctionPath[7] = neededToUpdateSquare;

            int  numOfDirection = 8;
            bool isLegalSquare  = false;

            for (int i = 0; i < numOfDirection; i++)
            {
                if (dirctionPath[i] == true)
                {
                    isLegalSquare = true;
                    break;
                }
            }

            return(isLegalSquare);
        }
示例#5
0
        public void UpdateBoard(Coords i_Coord, eNumSquare i_SoldierType)
        {
            bool neededToUpdateSquare = false;
            bool paintTheSquare       = true;
            bool isFirstOcurrance     = true;

            updateOrCheckDirctionPathDueToMove(i_Coord.X - 1, i_Coord.Y, -1, 0, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);

            updateOrCheckDirctionPathDueToMove(i_Coord.X - 1, i_Coord.Y + 1, -1, 1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);

            updateOrCheckDirctionPathDueToMove(i_Coord.X, i_Coord.Y + 1, 0, 1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);

            updateOrCheckDirctionPathDueToMove(i_Coord.X + 1, i_Coord.Y + 1, 1, 1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);

            updateOrCheckDirctionPathDueToMove(i_Coord.X + 1, i_Coord.Y, 1, 0, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);

            updateOrCheckDirctionPathDueToMove(i_Coord.X + 1, i_Coord.Y - 1, 1, -1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);

            updateOrCheckDirctionPathDueToMove(i_Coord.X, i_Coord.Y - 1, 0, -1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);

            updateOrCheckDirctionPathDueToMove(i_Coord.X - 1, i_Coord.Y - 1, -1, -1, i_SoldierType, ref neededToUpdateSquare, paintTheSquare, isFirstOcurrance);
        }
示例#6
0
 public void SetSquare(Coords i_Coord, eNumSquare i_Square)
 {
     m_Board[i_Coord.X, i_Coord.Y] = i_Square;
 }