Esempio n. 1
0
        private bool checkTheMovGenericIsCorrect(e_Rank i_TypeSoldier, int i_OldX, int i_OldY, int i_NewX, int i_NewY)
        {
            bool answer = false;
            int  moveSoldierUpOrDown = ID == e_PlayerID.FIRST ? 1 : -1;            //('1' -> First, '-1' -> Second
            bool isKing = i_TypeSoldier == e_Rank.KING;

            if (i_OldY == i_NewY + moveSoldierUpOrDown && (i_OldX == i_NewX + 1 || i_OldX == i_NewX - 1))
            ////check if this is 1 step and the location is consecutive
            {
                answer = true;
            }
            else if (i_OldY == i_NewY + 2 * moveSoldierUpOrDown && (i_OldX == i_NewX + 2 || i_OldX == i_NewX - 2) &&                                                                   // the ToX and ToY is distance with 2 from FromX and FromY.
                     Board.getCellContent((i_OldX + i_NewX) / 2, (i_OldY + i_NewY) / 2) != null && Board.getCellContent((i_OldX + i_NewX) / 2, (i_OldY + i_NewY) / 2).Player.ID != ID) // check if in cell have enemy soldier
            ////check if i can to jump on enemy soldier.
            {
                answer = true;
            }
            else if (isKing)
            {
                if (i_OldY == i_NewY - moveSoldierUpOrDown &&
                    (i_OldX == i_NewX + 1 || i_OldX == i_NewX - 1))
                ////check if this is 1 step and the location is consecutive
                {
                    answer = true;
                }
                else if (i_OldY == i_NewY - 2 * moveSoldierUpOrDown && (i_OldX == i_NewX + 2 || i_OldX == i_NewX - 2) &&                                                                   // the ToX and ToY is distance with 2 from FromX and FromY.
                         Board.getCellContent((i_OldX + i_NewX) / 2, (i_OldY + i_NewY) / 2) != null && Board.getCellContent((i_OldX + i_NewX) / 2, (i_OldY + i_NewY) / 2).Player.ID != ID) // check if in cell have enemy soldier
                {
                    answer = true;
                }
            }

            return(answer);
        }
Esempio n. 2
0
 public Piece(Player player)
 {
     this.Player = player;
     this.Rank   = e_Rank.SOLDIER;
 }