[virtualcommons-svn] commit/foraging: alllee: adjusting ForagingRule enums and moving into .iu subp
Status: Beta
Brought to you by:
alllee
1 new commit in foraging: https://bitbucket.org/virtualcommons/foraging/changeset/f2bca6d71c29/ changeset: f2bca6d71c29 user: alllee date: 2012-01-21 07:08:27 summary: adjusting ForagingRule enums and moving into .iu subpackage and configuration / instructions fixes. Also adding a configuration variable to enable/disable the token animation. affected #: 19 files diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/client/ClientDataModel.java --- a/src/main/java/edu/asu/commons/foraging/client/ClientDataModel.java +++ b/src/main/java/edu/asu/commons/foraging/client/ClientDataModel.java @@ -18,7 +18,7 @@ import edu.asu.commons.foraging.model.ForagingDataModel; import edu.asu.commons.foraging.model.GroupDataModel; import edu.asu.commons.foraging.model.Resource; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.net.Identifier; import edu.asu.commons.util.Duration; /** diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/client/ForagingClient.java --- a/src/main/java/edu/asu/commons/foraging/client/ForagingClient.java +++ b/src/main/java/edu/asu/commons/foraging/client/ForagingClient.java @@ -42,7 +42,7 @@ import edu.asu.commons.foraging.event.SynchronizeClientEvent; import edu.asu.commons.foraging.event.TrustGameResultsClientEvent; import edu.asu.commons.foraging.event.TrustGameSubmissionRequest; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.foraging.ui.GameWindow; import edu.asu.commons.foraging.ui.GameWindow2D; import edu.asu.commons.foraging.ui.GameWindow3D; diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java --- a/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java +++ b/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java @@ -18,7 +18,7 @@ import edu.asu.commons.foraging.model.EnforcementMechanism; import edu.asu.commons.foraging.model.ResourceDispenser; import edu.asu.commons.foraging.model.ServerDataModel; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.net.Identifier; import edu.asu.commons.util.Duration; @@ -557,9 +557,7 @@ } public String getInitialVotingInstructions() { - ST template = createStringTemplate(getProperty("initial-voting-instructions", "<h1>Notice</h1><hr><p>You will be given the ability to vote for rules in the next screen.</p>")); - template.add("clientsPerGroup", getClientsPerGroup()); - return template.render(); + return createStringTemplate(getProperty("initial-voting-instructions", getParentConfiguration().getInitialVotingInstructions())).render(); } public List<ForagingRule> getForagingRules() { @@ -722,7 +720,7 @@ } public String getSubmittedVoteInstructions() { - return getProperty("submitted-vote-instructions", "<h1>Submitted</h1><hr><p>Thank you for submitting your vote. Please wait while we tally the rest of the votes from the other members of your group.</p>"); + return getProperty("submitted-vote-instructions", "<h1>Submitted</h1><hr><p>Your nomination has been recorded. The final results of the nomination will be shown once all the nominations in your group have been received.</p>"); } public String getVotingResults(List<ForagingRule> selectedRules) { @@ -829,4 +827,8 @@ public String getDurationInMinutes() { return inMinutes(getDuration()) + " minutes"; } + + public boolean showTokenAnimation() { + return getBooleanProperty("show-token-animation", true); + } } diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/conf/ServerConfiguration.java --- a/src/main/java/edu/asu/commons/foraging/conf/ServerConfiguration.java +++ b/src/main/java/edu/asu/commons/foraging/conf/ServerConfiguration.java @@ -143,4 +143,8 @@ return data.getCorrectQuizAnswers() * getQuizCorrectAnswerReward(); } + public String getInitialVotingInstructions() { + return assistant.getProperty("initial-voting-instructions"); + } + } diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/event/RuleSelectedUpdateEvent.java --- a/src/main/java/edu/asu/commons/foraging/event/RuleSelectedUpdateEvent.java +++ b/src/main/java/edu/asu/commons/foraging/event/RuleSelectedUpdateEvent.java @@ -5,7 +5,7 @@ import java.util.Map; import edu.asu.commons.event.AbstractPersistableEvent; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.net.Identifier; /** diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/event/RuleVoteRequest.java --- a/src/main/java/edu/asu/commons/foraging/event/RuleVoteRequest.java +++ b/src/main/java/edu/asu/commons/foraging/event/RuleVoteRequest.java @@ -2,7 +2,7 @@ import edu.asu.commons.event.AbstractPersistableEvent; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.net.Identifier; /** diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/model/ClientData.java --- a/src/main/java/edu/asu/commons/foraging/model/ClientData.java +++ b/src/main/java/edu/asu/commons/foraging/model/ClientData.java @@ -13,7 +13,7 @@ import edu.asu.commons.foraging.conf.RoundConfiguration.SanctionAction; import edu.asu.commons.foraging.event.RealTimeSanctionRequest; import edu.asu.commons.foraging.graphics.Point3D; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.foraging.ui.Circle; import edu.asu.commons.net.Identifier; import edu.asu.commons.util.Duration; diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java --- a/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java +++ b/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java @@ -25,7 +25,7 @@ import edu.asu.commons.foraging.event.SynchronizeClientEvent; import edu.asu.commons.foraging.event.TokenCollectedEvent; import edu.asu.commons.foraging.event.UnlockResourceRequest; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.foraging.ui.Circle; import edu.asu.commons.net.Identifier; diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/rules/ForagingRule.java --- a/src/main/java/edu/asu/commons/foraging/rules/ForagingRule.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.asu.commons.foraging.rules; - -/** - * $Id$ - * - * A set of rules for the Indiana experiments run by Daniel DeCaro in 2011/2012. - * - * Split into an .iu or other subpackage if it turns out these aren't generic enough. - * - * @author <a href='mailto:all...@as...'>Allen Lee</a> - * @version $Rev$ - */ -public enum ForagingRule { - // FIXME: hard coded for 4 minute rounds, but templatizing this text is a bit of overkill at the moment unless - // we move this over to the configuration. - WAIT_ONE_MINUTE("Wait 60 seconds for the screen to fill up with tokens (the timer will have 180 seconds left). Then everyone collects tokens for the remaining amount of time."), - PRIVATE_PROPERTY("Players divide the field up into four equally-sized areas and can do whatever they want within their area. With four people, each person takes an area around one of the four corners."), - LIMITED_COLLECTION_RATE("Each person collects tokens at a rate of 1 token every 4 seconds."), - MAINTAIN_TOKEN_CLUSTERS("Players leave two tokens untouched when the tokens are in a cluster of three or more that surround an empty cell."), - LEAVE_TEN_FOR_REGROWTH("Collect tokens until only 10 are left; at that point, everyone must wait at least 30 seconds before collecting any more tokens."), - NONE("Everyone can do whatever they want."); - - private final String description; - - private ForagingRule(String description) { - this.description = description; - } - - public String getDescription() { - return description; - } - - public String toString() { - return description; - } -} diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/rules/iu/ForagingRule.java --- /dev/null +++ b/src/main/java/edu/asu/commons/foraging/rules/iu/ForagingRule.java @@ -0,0 +1,33 @@ +package edu.asu.commons.foraging.rules.iu; + +/** + * $Id$ + * + * A set of rules for the Indiana experiments run by Daniel DeCaro in 2011/2012. + * + * @author <a href='mailto:all...@as...'>Allen Lee</a> + * @version $Rev$ + */ +public enum ForagingRule { + // FIXME: hard coded for 4 minute rounds, but templatizing this text is a bit of overkill at the moment unless + // we move this over to the configuration. + WAIT_ONE_MINUTE("Wait 60 seconds for the screen to fill up with tokens. Then everyone collects tokens for the remaining amount of time."), + PRIVATE_PROPERTY("Players divide the field up into four equally-sized areas and can do whatever they want within their area. With four people, each person takes an area around one of the four corners."), + WAIT_TEN_SECONDS("Wait 10 seconds, then collect 3 tokens. Repeat this process until the time runs out or all the tokens are gone."), + COLLECT_TOKENS_AND_WAIT("Collect tokens for 10 seconds. Then stop and wait for 5 seconds before starting this process again."), + NONE("Everyone can do whatever they want."); + + private final String description; + + private ForagingRule(String description) { + this.description = description; + } + + public String getDescription() { + return description; + } + + public String toString() { + return description; + } +} diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 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 @@ -78,7 +78,7 @@ import edu.asu.commons.foraging.model.ResourceDispenser; import edu.asu.commons.foraging.model.ServerDataModel; import edu.asu.commons.foraging.model.TrustGameResult; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.foraging.ui.Circle; import edu.asu.commons.net.Dispatcher; import edu.asu.commons.net.Identifier; diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 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 @@ -57,7 +57,7 @@ import edu.asu.commons.foraging.event.TrustGameResultsClientEvent; import edu.asu.commons.foraging.model.ClientData; import edu.asu.commons.foraging.model.Direction; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.net.Identifier; import edu.asu.commons.ui.HtmlEditorPane; import edu.asu.commons.ui.UserInterfaceUtils; @@ -770,7 +770,6 @@ instructionsEditorPane.setActionListener(null); instructionsEditorPane.setActionListener(createSurveyFinishedListener()); setInstructions(dataModel.getRoundConfiguration().getSurveyInstructions(dataModel.getId())); - switchInstructionsPane(); } }); diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/ui/SubjectView.java --- a/src/main/java/edu/asu/commons/foraging/ui/SubjectView.java +++ b/src/main/java/edu/asu/commons/foraging/ui/SubjectView.java @@ -42,8 +42,8 @@ private final ClientDataModel dataModel; - private boolean tokenFieldOfVision; - private boolean subjectFieldOfVision; + private boolean tokenFieldOfVisionEnabled; + private boolean subjectFieldOfVisionEnabled; public final static Color FIELD_OF_VISION_COLOR = new Color(255, 255, 255, 150); @@ -75,37 +75,39 @@ viewTokensField = null; synchronized (collectedTokens) { collectedTokens.clear(); - tokenFieldOfVision = configuration.isTokensFieldOfVisionEnabled(); - if (tokenFieldOfVision) { + tokenFieldOfVisionEnabled = configuration.isTokensFieldOfVisionEnabled(); + if (tokenFieldOfVisionEnabled) { viewTokensRadius = configuration.getViewTokensRadius(); Point location = dataModel.getCurrentPosition(); viewTokensField = new Circle(location, viewTokensRadius); } - subjectFieldOfVision = configuration.isSubjectsFieldOfVisionEnabled(); - if (subjectFieldOfVision) { + subjectFieldOfVisionEnabled = configuration.isSubjectsFieldOfVisionEnabled(); + if (subjectFieldOfVisionEnabled) { viewSubjectsRadius = configuration.getViewSubjectsRadius(); viewSubjectsField = new Circle(dataModel.getCurrentPosition(), viewSubjectsRadius); } } super.setup(configuration); - if (tokenFieldOfVision || subjectFieldOfVision) { + if (tokenFieldOfVisionEnabled || subjectFieldOfVisionEnabled) { fieldOfVisionOffset = (dw / 2.0d); System.err.println("field of vision offset: " + fieldOfVisionOffset); } } public void collectTokens(Point ... positions) { - synchronized (collectedTokens) { - for (Point position: positions) { - collectedTokens.put(position, Duration.create(COLLECTED_TOKEN_ANIMATION_DURATION)); - } - } + if (dataModel.getRoundConfiguration().showTokenAnimation()) { + synchronized (collectedTokens) { + for (Point position: positions) { + collectedTokens.put(position, Duration.create(COLLECTED_TOKEN_ANIMATION_DURATION)); + } + } + } } protected void paintTokens(Graphics2D graphics2D) { // three cases - show all food on the game board, show all food within // visible radius of the current player, or don't show any food. - if (tokenFieldOfVision) { + if (tokenFieldOfVisionEnabled) { viewTokensField.setCenter(dataModel.getCurrentPosition()); paintCollection(dataModel.getResourcePositions(), graphics2D, scaledTokenImage, this, viewTokensField); } @@ -118,28 +120,30 @@ int height = (int) dh; int offset = 1; // paint shrinking tokens that this client has consumed. - synchronized (collectedTokens) { - for (Iterator<Map.Entry<Point, Duration>> iter = collectedTokens.entrySet().iterator(); iter.hasNext();) { - Map.Entry<Point, Duration> entry = iter.next(); - Point point = entry.getKey(); - Duration duration = entry.getValue(); - elapsedTime = duration.getElapsedTime(); - // FIXME: offset should be proportional to the actual size. - if (elapsedTime < 333L) { - offset = 1; - } else if (elapsedTime < 666L) { - offset = 2; - } else if (elapsedTime < 1000L) { - offset = 3; - } else { - // After the time threshold has been exceeded, prune old food - // that shouldn't be displayed. - iter.remove(); - continue; - } - // food pellets shrink over time - paintToken(point, graphics2D, width/offset, height/offset); - } + if (dataModel.getRoundConfiguration().showTokenAnimation()) { + synchronized (collectedTokens) { + for (Iterator<Map.Entry<Point, Duration>> iter = collectedTokens.entrySet().iterator(); iter.hasNext();) { + Map.Entry<Point, Duration> entry = iter.next(); + Point point = entry.getKey(); + Duration duration = entry.getValue(); + elapsedTime = duration.getElapsedTime(); + // FIXME: offset should be proportional to the actual size. + if (elapsedTime < 333L) { + offset = 1; + } else if (elapsedTime < 666L) { + offset = 2; + } else if (elapsedTime < 1000L) { + offset = 3; + } else { + // After the time threshold has been exceeded, prune old food + // that shouldn't be displayed. + iter.remove(); + continue; + } + // food pellets shrink over time + paintToken(point, graphics2D, width/offset, height/offset); + } + } } } @@ -155,7 +159,7 @@ int characterHeight = fontMetrics.getAscent(); int verticalCharacterSpacing = (int) ( (dh - characterHeight) / 2); Point currentPosition = dataModel.getCurrentPosition(); - if (subjectFieldOfVision) { + if (subjectFieldOfVisionEnabled) { // paint a transparent circle centered on the current position of the subject. int radius = viewSubjectsRadius; viewSubjectsField.setCenter(currentPosition); diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/java/edu/asu/commons/foraging/ui/VotingForm.java --- a/src/main/java/edu/asu/commons/foraging/ui/VotingForm.java +++ b/src/main/java/edu/asu/commons/foraging/ui/VotingForm.java @@ -32,7 +32,7 @@ import javax.swing.WindowConstants; import edu.asu.commons.foraging.client.ForagingClient; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.ui.UserInterfaceUtils; /** diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/resources/configuration/iu/2011/vote-punish/round1.xml --- a/src/main/resources/configuration/iu/2011/vote-punish/round1.xml +++ b/src/main/resources/configuration/iu/2011/vote-punish/round1.xml @@ -26,8 +26,8 @@ <p> In this round the renewable resource will become five times bigger. You will share this larger environment with three other random players in this room. In -particular, each of you in this room has been randomly assigned to one of several -equal-sized {self.clientsPerGroup} person groups and everyone in your group has been +particular, <b>each of you in this room has been randomly assigned to one of several +equally-sized {self.clientsPerGroup} person groups.,</b> And everyone in your group has been randomly assigned a number from 1 to {self.clientsPerGroup}. <b>You will stay in the same group for the entire experiment</b>, and each person's number from 1 to {self.clientsPerGroup} will remain the same throughout the experiment. The other @@ -35,9 +35,9 @@ <img src="@CODEBASE_URL@/images/gem-other.gif"> with a white number embedded in the dot. </p><p> - In each round of the token task you can see how many tokens each player has + In each round of the token task, you can see how many tokens each player has collected at the top right corner of the screen. On the top left corner of the - screen you will see the remaining time in the round. + screen, you will see the remaining time in the round. </p><h3>Anonymity</h3><hr> diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/resources/configuration/iu/2011/vote-punish/round4.xml --- a/src/main/resources/configuration/iu/2011/vote-punish/round4.xml +++ b/src/main/resources/configuration/iu/2011/vote-punish/round4.xml @@ -15,7 +15,7 @@ <entry key='voting-enabled'>true</entry><entry key="instructions"><![CDATA[ - <h1>Important New Instructions</h1> + <h1>Important New Instructions!</h1><h2>Reducing Other Player's Earnings</h2><hr><p> @@ -55,7 +55,7 @@ <h2>Strategy Reminder</h2><hr><p> - The strategy your group voted for is: + Reminder: </p><ul><li><b>{first(self.selectedRules)}</b></li> @@ -66,12 +66,12 @@ <entry key='voting-results'><![CDATA[ - <h1>Voting Results</h1> + <h1>Nomination Results</h1><h2>Selected Strategy</h2><hr><p><b> {first(selectedRules)} </b></p> {if (tiebreaker)} - <p><b>NOTE:</b> There was a tie and selected strategy listed here was randomly selected as the winner.</p> + <p><b>NOTE:</b> There was a tie and the selected strategy listed here was randomly selected as the winner.</p><h2>Other Nominated Strategies</h2><hr><ol> @@ -83,18 +83,19 @@ <entry key='initial-voting-instructions'><![CDATA[ -<h1>Important New Instructions</h1> +<h1>Important New Instructions!</h1><h2>Strategies for managing how players collect tokens for the rest of the experiment</h2><hr><p> -In a moment, you will have the option to implement one of six strategies for how you +In a moment, you will have the option to implement one of five strategies for how you and the three other people in your group collect tokens for the rest of the experiment. </p> + <h2>Procedure for Deciding the Strategy</h2><hr><p> - Each of the {clientsPerGroup} people in your group can nominate one of the six + Each of the {self.clientsPerGroup} people in your group can nominate one of the five potential strategies. The single strategy that receives the most nominations wins. </p> @@ -103,6 +104,7 @@ the computer. Each of the tied strategies will have an equal chance of being selected. </p> + <h2>Implementation</h2><hr><p>Neither the computer nor the experimenter will intervene to implement the @@ -122,8 +124,7 @@ <h1>Strategy Nomination Instructions</h1><hr><p> -To nominate a strategy, click the button to the right of the one you choose, and -then click "submit." The computer will tally the nominations and then report the +To nominate a strategy, click the radio button that is to the right of the one you choose; then click "submit". The computer will tally the nominations and then report the results on the next screen. The results will be presented to each person in your group. </p> diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/resources/configuration/iu/2011/vote-punish/round7.xml --- a/src/main/resources/configuration/iu/2011/vote-punish/round7.xml +++ b/src/main/resources/configuration/iu/2011/vote-punish/round7.xml @@ -22,12 +22,16 @@ <entry key="instructions"><![CDATA[ -<h3>Instructions</h3> +<h2>Important New Instructions!</h2><hr><p> -From this point forward, participants will NOT have the option to reduce the earnings of another participant. +<b>From this point forward, participants will NOT have the option to reduce the earnings of another participant.</b></p> -<p>The length of this round is {duration}.</p> + +<h2>Round {self.roundNumber}</h2> +<hr> +<p> +Round {self.roundNumber} is about to begin. The length of this round is again {duration}.</p><p><b>Do you have any questions?</b> If you have any questions at this time please raise your hand and someone will come over to your station and answer it.</p> ]]></entry> diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/main/resources/configuration/iu/2011/vote-punish/server.xml --- a/src/main/resources/configuration/iu/2011/vote-punish/server.xml +++ b/src/main/resources/configuration/iu/2011/vote-punish/server.xml @@ -23,8 +23,8 @@ <h1>Survey</h1><hr><p> - This was the final round of the token task. To wrap up we would like to again ask you - some quick questions. Please <a href='{surveyUrl}'>click here</a> to + Before we continue to the next round of the token task, we would like to ask you + some quick questions. Please <a href='{surveyUrl}'>click here</a> to begin the survey. </p><p> @@ -85,9 +85,9 @@ <hr><p> You have already earned {showUpPayment} by showing up at this experiment. You can -earn more, up to a maximum of about $15-$40, by participating in this experiment +earn more, up to a maximum of about $15-$50, by participating in this experiment which will take about an hour to an hour and a half. The amount of money you earn -depends on your decisions as well as the decisions of your group members.</p> +depends on your decisions, as well as the decisions of your group members during the nine rounds of the experiment.</p><h2>The Token Task</h2><hr><p> @@ -110,7 +110,7 @@ The tokens that you collect have the potential to regenerate. After you have collected a green token, a new token can re-appear on that empty cell. The rate at which new tokens appear is dependent on the number of adjacent cells that still have -tokens. The more tokens there are in the eight cells around empty cell, the faster +tokens. The more tokens there are in the eight cells around an empty cell, the faster a new token will appear on that empty cell. </p><p> diff -r f22cde9f795d44940802d73c1083abd4c2271ca5 -r f2bca6d71c29c0cb8c1c574f2fc7080e2e704280 src/test/java/edu/asu/commons/foraging/model/GroupDataModelTest.java --- a/src/test/java/edu/asu/commons/foraging/model/GroupDataModelTest.java +++ b/src/test/java/edu/asu/commons/foraging/model/GroupDataModelTest.java @@ -12,7 +12,7 @@ import org.junit.Test; import edu.asu.commons.foraging.conf.RoundConfiguration; -import edu.asu.commons.foraging.rules.ForagingRule; +import edu.asu.commons.foraging.rules.iu.ForagingRule; import edu.asu.commons.net.Identifier; public class GroupDataModelTest { 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. |