Beispiel #1
0
    private void AvailableUpLeft(Point coord, ref List <Point> PiecesToConvert)
    {
        Queue <Point> pieceQueue       = new Queue <Point>();
        bool          foundPlayerPiece = false;

        GameManager.Piece pieceToCheck = (gameManager.Turn == GameManager.GameTurn.Player) ? GameManager.Piece.White : GameManager.Piece.Black;

        if (coord.X != 0 && coord.Y != board.Size - 1)
        {
            for (int newX = coord.X - 1, newY = coord.Y + 1; newX >= 0 && newY < board.Size - 1; newX--, newY++)
            {
                if (gameManager.pieces[newX][newY].Equals(GameManager.Piece.None))
                {
                    return;
                }
                else if (gameManager.pieces[newX][newY].Equals(pieceToCheck))
                {
                    foundPlayerPiece = true;
                    break;
                }
                else
                {
                    pieceQueue.Enqueue(new Point(newX, newY));
                }
            }

            if (foundPlayerPiece)
            {
                while (pieceQueue.Count > 0)
                {
                    PiecesToConvert.Add(pieceQueue.Dequeue());
                }
            }
        }
    }
Beispiel #2
0
    private void AvailableDown(Point coord, ref List <Point> PiecesToConvert)
    {
        Queue <Point> pieceQueue       = new Queue <Point>();
        bool          foundPlayerPiece = false;

        GameManager.Piece pieceToCheck = (gameManager.Turn == GameManager.GameTurn.Player) ? GameManager.Piece.White : GameManager.Piece.Black;

        if (coord.Y != 0)
        {
            for (int newY = coord.Y - 1; newY >= 0; newY--)
            {
                if (gameManager.pieces[coord.X][newY].Equals(GameManager.Piece.None))
                {
                    return;
                }
                else if (gameManager.pieces[coord.X][newY].Equals(pieceToCheck))
                {
                    foundPlayerPiece = true;
                    break;
                }
                else
                {
                    pieceQueue.Enqueue(new Point(coord.X, newY));
                }
            }

            if (foundPlayerPiece)
            {
                while (pieceQueue.Count > 0)
                {
                    PiecesToConvert.Add(pieceQueue.Dequeue());
                }
            }
        }
    }