Beispiel #1
0
        /*
         * Deletes a piece from a given position. In case of "pawn promotion", do not put into deleted pieces set.
         */
        public Piece killPiece(Position pos, bool promotion)
        {
            bool  found = false;
            Piece piece = null;

            Iterator it = whitePieces.getIterator();

            while (it.MoveNext())
            {
                Piece p = (it.Current as Piece);

                if (p.getPosition().Equals(pos))
                {
                    piece = p;

                    if (!promotion)
                    {
                        mainForm.getWhiteImages().Images.Add(p.getImage());
                    }

                    whitePieces.remove(p);
                    found = true;
                    break;
                }
            }

            if (!found)
            {
                it = blackPieces.getIterator();

                while (it.MoveNext())
                {
                    Piece p = (it.Current as Piece);

                    if (p.getPosition().Equals(pos))
                    {
                        piece = p;

                        if (!promotion)
                        {
                            mainForm.getBlackImages().Images.Add(p.getImage());
                        }

                        blackPieces.remove(p);
                        break;
                    }
                }
            }

            return(piece);
        }