public void thinkAndPlay() throws BadBoardException, BadMoveException, BadPartialMoveException {
        System.out.println("computer is thinking...");
        if (myGame.getCurrentPlayer( ) != myColor) {
            throw new BadBoardException("AI can't move now, it's not AI's turn!");
        }
        if ( ! myGame.myBoard.myDice.getRolled( ) ) {
            myGame.getMyBoard().myDice.roll( ); // if onBar then calls handleBar, if can'tMove then calls forfeit
        }

        Move aiMove = myStrategy.pickBestMove(myGame.getMyBoard( ), myColor);

        /* might be null, might not have any moves, might be blocked! */
        if ((aiMove == null) || (aiMove.getMyPartials( ).size( ) < 1) || (! aiMove.isPossible())) {
            myStrategy = switchStrategy( );
            aiMove = myStrategy.pickBestMove(myGame.getMyBoard( ), myColor);
            /* what if this is null?? */
            if ((aiMove == null) || (! aiMove.isPossible())) {
                throw new NullPointerException("Darn, I don't know where to move.");
            }
        }
        //System.out.println(myMoves);

        System.out.println("AI will move to '" + aiMove + "'");
        aiMove.doMove( );

        
    } // thinkAndPlay()