[virtualcommons-svn] commit/foraging: alllee: minor hygiene and bugfixes for trust game earnings lo
Status: Beta
Brought to you by:
alllee
From: Bitbucket <com...@bi...> - 2012-01-17 05:25:45
|
1 new commit in foraging: https://bitbucket.org/virtualcommons/foraging/changeset/12876cd1bd8f/ changeset: 12876cd1bd8f user: alllee date: 2012-01-17 06:25:17 summary: minor hygiene and bugfixes for trust game earnings log, was using amountSent instead of totalAmountSent to display player 2 trust game log affected #: 3 files diff -r cb332a1f2783cf38c99c467895ab8ab8e893b776 -r 12876cd1bd8f3d434698704b527d1a37c530e3ee src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java --- a/src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java +++ b/src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java @@ -418,6 +418,7 @@ double playerOneEarnings = playerOneAmountToKeep; double playerTwoEarnings = 0.0d; double amountReturnedToPlayerOne = 0.0d; + double totalAmountSent = amountSent * 3.0d; if (amountSent > 0) { int index = 0; if (amountSent == 0.25d) { @@ -430,25 +431,30 @@ index = 3; } playerTwoEarnings = playerTwoAmountsToKeep[index]; - double totalAmountSent = 3 * amountSent; amountReturnedToPlayerOne = totalAmountSent - playerTwoEarnings; playerOneEarnings += amountReturnedToPlayerOne; } - String playerOneLog = String.format("Player 1 kept %s and received %s back from Player 2 for a total of %s", - CURRENCY_FORMATTER.format(playerOneAmountToKeep), + String playerOneLog = String.format("Player 1 kept %s, sent %s, and received %s back from Player 2 for a total of %s", + CURRENCY_FORMATTER.format(playerOneAmountToKeep), + CURRENCY_FORMATTER.format(amountSent), CURRENCY_FORMATTER.format(amountReturnedToPlayerOne), CURRENCY_FORMATTER.format(playerOneEarnings)); playerOne.logTrustGame("You were player one. " + playerOneLog); playerOne.addTrustGameEarnings(playerOneEarnings); builder.append(playerOne).append(playerOneLog).append("\n"); if (shouldLogPlayerTwo(playerOne, playerTwo)) { - String playerTwoLog = String.format("Player 2 received %s and sent back %s to Player 1, earning %s", - CURRENCY_FORMATTER.format(amountSent), - CURRENCY_FORMATTER.format(amountSent - playerTwoEarnings), + String playerTwoLog = String.format("Player 2: received %s from Player 1 and sent back %s, earning %s", + CURRENCY_FORMATTER.format(totalAmountSent), + CURRENCY_FORMATTER.format(totalAmountSent - playerTwoEarnings), CURRENCY_FORMATTER.format(playerTwoEarnings)); - playerTwo.logTrustGame(playerTwoLog); + playerTwo.logTrustGame("You were player two. " + playerTwoLog); playerTwo.addTrustGameEarnings(playerTwoEarnings); - builder.append(playerTwoLog).append("\n"); + builder.append(playerTwo).append(playerTwoLog).append("\n"); + } + else { + builder.append( + String.format("Player 2: (%s) already participated in the trust game and was only used as a strategy to respond to Player 1.", + playerTwo)); } return builder.toString(); } diff -r cb332a1f2783cf38c99c467895ab8ab8e893b776 -r 12876cd1bd8f3d434698704b527d1a37c530e3ee src/main/java/edu/asu/commons/foraging/server/ForagingServer.java --- a/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java +++ b/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java @@ -677,6 +677,9 @@ // FIXME: handle reconfiguration requests from facilitator } + /** + * Performs a random pairing of every member in the group to generate trust game payment results. + */ protected void processTrustGame() { List<String> allTrustGameResults = new ArrayList<String>(); for (GroupDataModel group : serverDataModel.getGroups()) { @@ -687,7 +690,6 @@ // using an iterator to consume both players and ensure that a player doesn't // have the trust game calculated on them twice (except as a player 2 selection) - boolean lastRound = getConfiguration().isLastRound(); for (ListIterator<ClientData> iter = clientList.listIterator(); iter.hasNext();) { ClientData playerOne = iter.next(); @@ -695,11 +697,14 @@ if (iter.hasNext()) { playerTwo = iter.next(); } - else { + // FIXME: upon second thought, this isn't strictly necessary as the list is already + // being shuffled and the random strategy needed to complete the pairings + // doesn't need to be doubly randomized +// else { // clumsy, see if we can express this differently // why doesn't listIterator offer a currentIndex() method as well? - playerTwo = clientList.get(random.nextInt(iter.previousIndex() + 1)); - } +// playerTwo = clientList.get(random.nextInt(iter.previousIndex() + 1)); +// } logger.info("TRUST GAME: about to pair " + playerOne + " with " + playerTwo); String trustGameResult = serverDataModel.calculateTrustGame(playerOne, playerTwo); allTrustGameResults.add(trustGameResult); diff -r cb332a1f2783cf38c99c467895ab8ab8e893b776 -r 12876cd1bd8f3d434698704b527d1a37c530e3ee src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java --- a/src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java +++ b/src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java @@ -807,6 +807,7 @@ JPanel panel = getPanel(); cardLayout.show(panel, panelName); panel.repaint(); + mainPanel.requestFocusInWindow(); } public void updateDebriefing(final PostRoundSanctionUpdateEvent event) { @@ -886,7 +887,7 @@ @Override public void requestFocusInWindow() { - getPanel().requestFocusInWindow(); + mainPanel.requestFocusInWindow(); } Repository URL: https://bitbucket.org/virtualcommons/foraging/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. |