@OPERATION public void getBalanceFromRestaurants() throws OperationException { Set<Integer> keys = restaurantTable.keySet(); for (Integer key : keys) { ArrayList<ArtifactId> restaurants = restaurantTable.get(key); for (ArtifactId restaurant : restaurants) { // Double d = new Double(0); OpFeedbackParam<Double> d = new OpFeedbackParam<Double>(); execLinkedOp(restaurant, "getBalance", d); double val = d.get(); System.out.println("Balance for restaurant " + restaurant.getName() + " is: " + val); // System.out.println("Value: "+d); } } setPostEvaluationDone(true); }
@OPERATION void sense() { OpFeedbackParam<PersonSenseData[]> people = new OpFeedbackParam<>(); OpFeedbackParam<PoTSenseData[]> points = new OpFeedbackParam<>(); try { execLinkedOp("env-link", "sense", ID, people, points); ObsProperty peoplep = getObsProperty("people"); ObsProperty pointsp = getObsProperty("points"); peoplep.updateValue(toArray(people.get())); pointsp.updateValue(toArray(points.get())); } catch (Exception e) { e.printStackTrace(); failed("Sense linked operation failed", "fail", ID, e); } }
@OPERATION protected void registerAgent(OpFeedbackParam<String> wsp) { AgentId aid = getOpUserId(); System.out.println("registering agent " + aid); super.registerAgent(wsp); order.add(aid); wsp.set("NA"); }
/** * Operation that gives agents a linear representation of the state of the game. * * @param result */ @OPERATION void getGameState(OpFeedbackParam<Integer[]> result) { Integer[] res = new Integer[9]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) { res[3 * i + j] = gameState[i][j]; } result.set(res); }
@OPERATION void randomInt(OpFeedbackParam<Integer> res, int min, int max) { res.set(r.nextInt(max + 1 - min) + min); }
@OPERATION void random_int(int min, int max, OpFeedbackParam<Integer> res) { Random r = new Random(); res.set(r.nextInt((max - min + 1)) + min); }
@OPERATION void toss_coin(double prob, OpFeedbackParam<Boolean> res) { Random r = new Random(); res.set(r.nextDouble() < prob); }