Esempio n. 1
0
    void CheckChangeDir(Board_Piece.BoardState check_board, Board_Piece.BoardState change_board, Vector2 pos, int dirx, int diry)
    {
        Queue <Vector2> q = new Queue <Vector2>();

        q.Clear();
        int i = (int)pos.x + dirx;
        int j = (int)pos.y + diry;

        while (true)
        {
            if (i < 0 || i > 7 || j < 0 || j > 7)
            {
                return;
            }
            if (Board[i, j].GetComponent <Board_Piece>().GetState() == Board_Piece.BoardState.None)
            {
                break;
            }
            else if (Board[i, j].GetComponent <Board_Piece>().GetState() == check_board)
            {
                q.Enqueue(new Vector2(i, j));
            }
            else
            {
                while (q.Count != 0)
                {
                    Vector2 v = q.Dequeue();
                    Board[(int)v.x, (int)v.y].GetComponent <Board_Piece>().ChangeDisk(change_board);
                }
                break;
            }
            i += dirx;
            j += diry;
        }
    }
Esempio n. 2
0
    bool CheckDir(Board_Piece.BoardState check_board, Board_Piece.BoardState change_board, Vector2 pos, int dirx, int diry)
    {
        Queue <Vector2> q = new Queue <Vector2>();

        q.Clear();
        int i = (int)pos.x + dirx;
        int j = (int)pos.y + diry;

        while (true)
        {
            if (i < 0 || i > 7 || j < 0 || j > 7)
            {
                return(false);
            }
            if (Board[i, j].GetComponent <Board_Piece>().GetState() == Board_Piece.BoardState.None)
            {
                return(false);
            }
            else if (Board[i, j].GetComponent <Board_Piece>().GetState() == check_board)
            {
                q.Enqueue(new Vector2(i, j));
            }
            else
            {
                if (q.Count != 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            i += dirx;
            j += diry;
        }
    }