Ejemplo n.º 1
0
 public void GetCurrentCheckerBoard(CheckerBoard igameState)
 {
     gameState = igameState;
     state     = new int[69];
     state     = CheckerBoardToState(gameState);
 }
Ejemplo n.º 2
0
 // Use this for initialization
 void Start()
 {
     board = GameObject.FindGameObjectWithTag("GameController").GetComponent<CheckerBoard>();
 }
Ejemplo n.º 3
0
    public double rollOut(Node tn)
    {
        CheckerBoard rollGS = gameObject.AddComponent <CheckerBoard>();

        rollGS = tn.gameState;
        bool   stillPlaying = true;
        double rc           = 0;
        int    pos;
        int    move;

        List <Piece> possiblePieceForcedToMove = rollGS.ScanForAllForcedPiece();

        if (possiblePieceForcedToMove.Count > 0)
        {
            while ((possiblePieceForcedToMove.Count > 0) && stillPlaying)
            {
                pos       = r.Next(possiblePieceForcedToMove.Count - 1);
                startDrag = gameState.UpdateDrag(possiblePieceForcedToMove[pos]);
                List <Vector2> possiblePositionsToMoveTo = possiblePieceForcedToMove[pos].possiblePositionForcedToMoveTo;
                move    = r.Next(possiblePositionsToMoveTo.Count - 1);
                endDrag = possiblePositionsToMoveTo[move];

                tn.ChangeMovingInState((int)startDrag.x, (int)startDrag.y, (int)endDrag.x, (int)endDrag.y);

                switch (rollGS.CheckVictory(state))
                {
                case -9:     // 1 won - ai
                    stillPlaying = false;
                    if (!rollGS.whoseMove())
                    {
                        rc = 1.0;
                    }
                    break;

                default:     /* keep playing */
                    possiblePieceForcedToMove = rollGS.ScanForAllForcedPiece();
                    break;
                }
            }
        }
        else
        {
            List <Piece> possiblePieceToMove = gameState.ScanForAllPiecePossibleToMove();
            while ((possiblePieceToMove.Count > 0) && stillPlaying)
            {
                pos       = r.Next(possiblePieceToMove.Count - 1);
                startDrag = gameState.UpdateDrag(possiblePieceToMove[pos]);
                List <Vector2> possiblePositionsToMoveTo = possiblePieceToMove[pos].possiblePositionToMoveTo;
                move    = r.Next(possiblePositionsToMoveTo.Count - 1);
                endDrag = possiblePositionsToMoveTo[move];

                tn.ChangeMovingInState((int)startDrag.x, (int)startDrag.y, (int)endDrag.x, (int)endDrag.y);

                switch (rollGS.CheckVictory(state))
                {
                case -9:     // 1 won - ai
                    stillPlaying = false;
                    if (!rollGS.whoseMove())
                    {
                        rc = 1.0;
                    }
                    break;

                default:     /* keep playing */
                    possiblePieceToMove = rollGS.ScanForAllForcedPiece();
                    break;
                }
            }
        }


        return(rc);
    }