Esempio n. 1
0
    private void moreSkipComputerMove(int RowSorcue, int colSorcue, out SourceAndTargetMove io_SourceAndTargetMoreMove)
    {
        int         i_IndexListMove = 0;
        int         i_RowSorcueFromList;
        int         i_ColSorcueFromList;
        eTypeOfMove i_TypeOfMoveFromList;

        FillLigalMovesList();
        do
        {
            i_TypeOfMoveFromList = Players[1].LigalMovesList[i_IndexListMove].TypeOfMove;
            i_RowSorcueFromList  = Players[1].LigalMovesList[i_IndexListMove].RowSorcue;
            i_ColSorcueFromList  = Players[1].LigalMovesList[i_IndexListMove].ColSorcue;
            i_IndexListMove++;
        } while ((i_RowSorcueFromList != RowSorcue) || (i_ColSorcueFromList != colSorcue) || (i_TypeOfMoveFromList == eTypeOfMove.RegularMove));

        makeMove(i_IndexListMove - 1);
        io_SourceAndTargetMoreMove = Players[1].LigalMovesList[i_IndexListMove - 1];
        if (io_SourceAndTargetMoreMove.TypeOfMove == eTypeOfMove.CanMoreSkip)
        {
            moreSkipComputerMove(io_SourceAndTargetMoreMove.RowTarget, io_SourceAndTargetMoreMove.ColTarget, out io_SourceAndTargetMoreMove);
        }

        int[] i_Target = { io_SourceAndTargetMoreMove.RowTarget, io_SourceAndTargetMoreMove.ColTarget };
        TryCreateKing(i_Target);
    }
Esempio n. 2
0
    public eTypeOfMove ComputerMove(out SourceAndTargetMove io_SourceAndTargetMove, out SourceAndTargetMove io_MoreSkipMove)
    {
        int i_MoveListIndex = 0;
        int i_MoveListLengh = Players[1].LigalMovesList.Count;

        int[]       i_ArrayTarget = new int[2];
        eTypeOfMove i_MoveType;

        io_MoreSkipMove = null;
        do
        {
            i_MoveType = Players[1].LigalMovesList[i_MoveListIndex].TypeOfMove;
            i_MoveListIndex++;
        } while ((i_MoveType != eTypeOfMove.CanMoreSkip) && (i_MoveListIndex < i_MoveListLengh));

        if (i_MoveType == eTypeOfMove.CanMoreSkip)
        {
            makeMove(i_MoveListIndex - 1);
            i_ArrayTarget[0]       = Players[1].LigalMovesList[i_MoveListIndex - 1].RowTarget;
            i_ArrayTarget[1]       = Players[1].LigalMovesList[i_MoveListIndex - 1].ColTarget;
            io_SourceAndTargetMove = Players[1].LigalMovesList[i_MoveListIndex - 1];
            TryCreateKing(i_ArrayTarget);
            moreSkipComputerMove(i_ArrayTarget[0], i_ArrayTarget[1], out io_MoreSkipMove);
        }
        else
        {
            i_MoveListIndex = 0;
            do
            {
                i_MoveType = Players[1].LigalMovesList[i_MoveListIndex].TypeOfMove;
                i_MoveListIndex++;
            } while ((i_MoveType != eTypeOfMove.MustToEat) && (i_MoveListIndex < i_MoveListLengh));

            if (i_MoveType != eTypeOfMove.MustToEat)
            {
                i_MoveType = eTypeOfMove.RegularMove;
                Random rndom = new Random();
                i_MoveListIndex = rndom.Next(0, i_MoveListLengh - 1) + 1;
            }

            makeMove(i_MoveListIndex - 1);
            io_SourceAndTargetMove = Players[1].LigalMovesList[i_MoveListIndex - 1];
            i_ArrayTarget[0]       = io_SourceAndTargetMove.RowTarget;
            i_ArrayTarget[1]       = io_SourceAndTargetMove.ColTarget;
            TryCreateKing(i_ArrayTarget);
        }

        return(i_MoveType);
    }