Changes between Version 200 and Version 201 of WikiStart


Ignore:
Timestamp:
06/26/19 14:37:31 (5 years ago)
Author:
wouter
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v200 v201  
    121121                if (info instanceof Settings) {
    122122                        Settings settings = (Settings) info;
    123                         profileint = getProfile(settings.getProfile().getURI());
     123                        this.profileint = ProfileConnectionFactory
     124                                        .create(settings.getProfile().getURI(), getReporter());
    124125                        this.me = settings.getID();
    125126                        this.progress = settings.getProgress();
     
    141142
    142143        private void myTurn() {
    143                 if (lastReceivedBid != null && profileint.getProfile()
    144                                 .getUtility(lastReceivedBid).doubleValue() > 0.6) {
     144                Action action;
     145                if (isGood(lastReceivedBid)) {
    145146                        action = new Accept(me, lastReceivedBid);
    146147                } else {
     
    148149                        AllPartialBidsList bidspace = new AllPartialBidsList(
    149150                                        profileint.getProfile().getDomain());
    150                         long i = random.nextInt(bidspace.size().intValue());
    151                         action = new Offer(me, bidspace.get(BigInteger.valueOf(i)));
     151                        Bid bid = null;
     152                        for (int attempt = 0; attempt < 20 && !isGood(bid); attempt++) {
     153                                long i = random.nextInt(bidspace.size().intValue());
     154                                bid = bidspace.get(BigInteger.valueOf(i));
     155                        }
     156                        action = new Offer(me, bid);
    152157                }
    153158                getConnection().send(action);
    154 
     159        }
     160
     161        private boolean isGood(Bid bid) {
     162                return bid != null
     163                                && ((LinearAdditiveUtilitySpace) profileint.getProfile())
     164                                                .getUtility(bid).doubleValue() > 0.6;
    155165        }
    156166