示例#1
0
        /// <summary>
        /// 从棋盘上拿走一枚棋子,当拿走一枚棋子时,要将拿走的该棋子对应该位子的子力价值从该方在该局下的局面价值上减去
        /// </summary>
        /// <param name="sq">位置下标</param>
        /// <param name="pc">哪颗棋子</param>
        public static void DelPiece(int sq, int pc)
        {
            //Debuger.LogWarning(string.Format("GameLogic->DelPiece() sq = {0}, pc = {1}", sq, pc));
            ucpcSquares[sq] = 0;

            // 红方减分,黑方(注意"cucvlPiecePos"取值要颠倒)加分
            if (pc < 16)
            {
                vlWhite -= GameConstant.cucvlPiecePos[pc - 8][sq];
            }
            else
            {
                vlBlack -= GameConstant.cucvlPiecePos[pc - 16][Chess_LoadUtil.SQUARE_FLIP(sq)];
            }
            Debuger.LogWarning(string.Format("GameLogic->DelPiece()完成 vlWhite = {0}, vlBlack = {1}", vlWhite, vlBlack));
        }
示例#2
0
        /// <summary>
        /// 在棋盘上放一枚棋子
        /// </summary>
        /// <param name="sq">位置下标</param>
        /// <param name="pc">哪颗棋子代号</param>
        public static void AddPiece(int sq, int pc)
        {
            ucpcSquares[sq] = pc;
            Debuger.LogWarning(string.Format("Loadutil->AddPiece( ) sq = {0}, pc = {1}", sq, pc));

            // 红方加分,黑方(注意"cucvlPiecePos"取值要颠倒)减分
            // 小于16是红方棋子,大于16为黑方棋子,0表示没棋子
            if (pc < 16)
            {
                vlWhite += GameConstant.cucvlPiecePos[pc - 8][sq];
                Debuger.LogWarning(string.Format("Loadutil->AddPiece( ) vlWhite = {0}", vlWhite));
            }
            else
            {
                vlBlack += GameConstant.cucvlPiecePos[pc - 16][Chess_LoadUtil.SQUARE_FLIP(sq)];
                Debuger.LogWarning(string.Format("Loadutil->AddPiece( ) vlBlack = {0}", vlBlack));
            }
        }