public Move pickBestMove(Board aBoard, int theColor)
    {
        if (!Board.legitColor(theColor)) {
            throw new IllegalArgumentException("StartGame.pickBestMove( ) got bad color '" + theColor + "'");
        } else {
            currColor = theColor;
        }
        if (aBoard == null) {
            throw new NullPointerException("StartGame.pickBestMove( ) can't analyze null board.");
        } else {
            currBoard = aBoard;
        }

        Move bestMove = null;

        currDice = currBoard.getMyDice( ); // will be clone, so we can't hurt it
        lowDice = currDice.getDie1( );
        highDice = currDice.getDie2( );

        if (lowDice > highDice) {
            dice1isLow = false;
            lowDice = currDice.getDie2( );
            highDice = currDice.getDie1( );
        }

        switch(lowDice) {
            case  1: bestMove = lowDice1(); break;
            case  2: bestMove = lowDice2(); break;
            case  3: bestMove = lowDice3(); break;
            case  4: bestMove = lowDice4(); break;
            case  5: bestMove = lowDice5(); break;
            case  6: bestMove = lowDice6(); break;
            default: 
            throw new IllegalArgumentException("StartGame.pickBestMove( ) only knows dice values 1..6!");
        }

        return bestMove;
    }