Return to the Angling Risk Task page
___________________________________________________________________________________________________________________	

									ANGLING RISK TASK (ART)
___________________________________________________________________________________________________________________	


Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 05-02-2013
last updated:  01-07-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 01-07-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements the Angling Risk Task (ART), a procedure to study risk taking behavior.
The implemented procedure is based on:											

Pleskac, T.J (2008). Decision Making and Learning While Taking Sequential Risks.
Journal of Experimental Psychology: Learning, Memory, and Cognition, 34, 167–185.

Note: the original ART as well as more detailed information can be obtained from Dr.Pleskac by request

Millisecond Software thanks Dr. Pleskac for sharing his original program as well as generously supporting our
efforts to replicate it in Inquisit!

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________	
Participants are playing in a fishing tournament for 30 (default)  number of rounds. 
The goal is to win as much money as possible during each round. Participants win money by fishing red fish out of a pond 
that contains 127 red fish (default) and 1 blue fish. Each time they catch a red fish, they win 5cents (default) 
which is put in a temporary bank. If they catch the blue fish instead, the current round is over and all money in the
temporary bank is lost. If participants don't want to lose their temporary money they have to decide when to stop
catching fish and collect the money they have earned. Once they decide to collect the money, the money is transferred
to a permanent bank and the current round is over.
Participants can play the game under 
* 2 different weather conditions: 	a) 'clear' (all fish are visible) or b) 'cloudy'  (no fish are visible)
* 2 different release conditions: 	a) 'catch n'keep' (fish are not returned to the lake => chance to fish blue fish increases with each successful fishing attempt) 
									b) 'catch n'release' (fish are returned to the lake => chance to fish blue fish stays constant)


ART vs BART (Balloon Analogue Risk Task; Lejuez et al., 2002)
from Pleskac - readme.txt (in original ART experimental package):
"The weather conditions of the fishing tournament can also be changed to manipulate the amount of learning necessary 
in the task and test the learning and risk assessment  prediction. The tournament can take place on a sunny day, allowing participants to 
see how many fish are swimming in the pond and eliminating the need to learn.  

In contrast, the tournament can take place on a cloudy day, concealing the fish in the pond, which in turn forces participants 
to learn how many are in the pond.  This is a stronger manipulation of learning than can be done with the BART because it 
removes any helpful cues. For example, a helpful cue in the BART is the relation between the balloon size and the edge of the screen 
because the balloon is set to explode for certain when it fills the screen. The ART also offers a visually informative and 
understandable display in the sunny tournaments so that participants are fully aware of the parameters of the task." 

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 8-10  minutes to complete

___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________ 
The default data stored in the data files are:

(1) Raw data file: 'anglingrisktask_raw*.iqdat' (a separate file for each participant)

build:								The specific Inquisit version used (the 'build') that was run
computer.platform:				the platform the script was run on (win/mac/ios/android)
date, time, 						date and time script was run 
subject, group, 					with the current subject/groupnumber
script.sessionid:					with the current session id


values.exp_condition:			1 = clear, catch n'keep
									2 = cloudy, catch n'keep
									3 = clear, catch n'release
									4 = cloudy, catch n'release
										
parameters.releasecondition:	1 = no release/catch n'keep (default); 
									2 = release/catch n'release	
								
parameters.weathercondition:	1 = clear (default); 
									2 = cloudy
								
parameters.maxnr_fishinpond:	the number of fish in the pond at the start of each fishing round
parameters.maxnr_trips:			number of fishing trips planned

parameters.fixedsampling:		1 = fixed samling: the sampling of the blue fish is fixed across participants
									0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined)
										
values.fixedfishingtrips:			stores the number of fishingtrips that can be made under the fixed sampling condition
									Example: 64 => 63 successful fishing trips can be made before the blue fish is caught on the 64th trip
								
parameters.reward:				amount paid for each red fish caught (default: $0.05)

blockcode, blocknum:			the name and number of the current block (built-in Inquisit variable)
trialcode, trialnum: 				the name and number of the currently recorded trial (built-in Inquisit variable)
										Note: trialnum is a built-in Inquisit variable; it counts all trials run; even those
										that do not store data to the data file such as feedback trials. Thus, trialnum 
										may not reflect the number of main trials run per block.
											
values.tripcount:					tracks the number of fishing trips
values.nextfish:					stores the number of the nextfish (1 = blue fish caught, any other number = red fish caught)
values.nr_winfish:				stores the current number of red fish left in the pond
values.current_winnings:		stores the current potential reward money (not safe yet)
values.total_winnings:			stores the current reward money already safely in the bank
response:							the response of participant ("goFishButton", "CollectButton", "okButton")
values.successtrip:				tracks the number of successful fishing trips (successful = did not fish a blue fish during this trip)
latency:							response latency (in ms)
values.timebefore1stcast:		latency before participant decide to do first cast (empty if participant decides to collect right away)
values.castlatency:				time it takes for participant to decide to cast (starting at start of trial.xxx_tournament); includes first cast
values.sumrt_castlatency:		sum of all cast latencies (used to calculate mean_castlatency)
values.timebeforecollect:		time (in ms) before participant decides to collect (measured from onset of trip until collect; if balloon explodes it's empty) 


(2) Summary data file: 'anglingrisktask_summary*.iqdat' (a separate file for each participant)

computer.platform:				the platform the script was run on (win/mac/ios/android)
script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					assigned subject id number
script.groupid:					assigned group id number
script.sessionid:					assigned session id number
script.elapsedtime:				time it took to run script (in ms); measured from onset to offset of script
script.completed:				0 = script was not completed (prematurely aborted); 
									1 = script was completed (all conditions run)

values.exp_condition:			1 = clear, catch n'keep
									2 = cloudy, catch n'keep
									3 = clear, catch n'release
									4 = cloudy, catch n'release
										
parameters.releasecondition:	1 = no release/catch n'keep (default); 
									2 = release/catch n'release	
								
parameters.weathercondition:	1 = clear (default); 
									2 = cloudy
								
parameters.maxnr_fishinpond:	the number of fish in the pond at the start of each fishing round
parameters.maxnr_trips:			number of fishing trips planned

parameters.fixedsampling:		1 = fixed samling: the sampling of the blue fish is fixed across participants
									0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined)
										
values.fixedfishingtrips:			stores the number of fishingtrips that can be made under the fixed sampling condition
									Example: 64 => 63 successful fishing trips can be made before the blue fish is caught on the 64th trip
								
parameters.reward:				amount paid for each red fish caught (default: $0.05)

values.total_winnings:			stores the current reward money already safely in the bank

values.tripcount:					actual number of fishing trips made
values.tripcount_1set-			per set (set1=trip1-trip10, set2= trip11-trip20, set3 = trip21-trip30)
values.tripcount_3set

values.successtrip:				tracks the number of successful fishing trips (successful = did not fish a blue fish during this trip)
values.successtrip_1set-		per set
values.successtrip_3set 

values.totalfishingcount:		tracks the number of fishing attempts across all trips
values.totalfishingcount_1set -		per set
values.totalfishingcount_3set

values.adj_totalfishingcount:	tracks the number of SUCCESSFUL fishing attempts across all trips
values.adj_totalfishingcount_1set-	per set
values.adj_totalfishingcount_3set

values.total_suddenends:		tracks the number of times a blue fish was caught
values.total_suddenends_1set-			per set
values.total_suddenends_3set

expressions.avg_fishingcount: 		mean number of times participant selected to fish (includes unsuccessful trips)
expressions.avg_fishingcount_1set- 			per set
expressions.avg_fishingcount_3set 				

expressions.adjavg_fishingcount:	mean number of times participant selected to fish (EXCLUDES unsuccessful trips)
expressions.adjavg_fishingcount_1set- 	by set
expressions.adjavg_fishingcount_3set 

expressions.mean_castlatency:		mean cast latency for tournament


___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	
* This script runs any of the four conditions of the ART
* By default, parameters can be set at the beginning of each script run

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________
Instructions are the original ART instructions by Pleskac (2008) (with minor modifications).
Instructions are presented via simple htm pages. These htm pages are included with this script and 
can easily be adapted to different languages.

___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________	
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code 
to further customize your experiment.

The parameters you can change are:
/parameterselection:			parameterselection = true (default): a screen is shown that let's participant/experimenter set the parameters
								parameterselection = false; default values are used that can be changed below
							
/showcatchring:				1= show a ring around the fish that was caught (default: 1)
								0 = don't show a ring around the fish that was caught
							
/catchring:					duration the caught fish (with green ring around) is presented (default: 200ms)

/show_tripnr:					1 = 'tripcount' is presented on the screen; 
								2 = 'tripcount' is NOT presented on the screen (default)

Parameters that are set up front IF parameterselection = true (otherwise can be changed below)
/maxnr_fishinpond:			sets the number of fish in the pond (default: 128)
								suggested default for no-release condition: 128 (compares best to BART procedure)
								suggested default for release condition: 65
							
/weathercondition:			1 = clear (default); 
								2 = cloudy
							
/releasecondition:			1 = no release/catch n'keep (default); 
								2 = release/catch n'release	
							
/maxnr_trips:					number of trips (default: 30)
									Note: it is suggested to use a number that is divisible by 3 as in addition to overall
									performance per trip condition, this script tracks performance by 3 sets of trips (first, second, third)
									Example: for 30 trips: first 10, second 10, third 10 trips get tracked separately
									if the chosen number is NOT divisible by 3, the script still runs but the summary variables may not be meaningful

/reward:						amount paid for each red fish caught (default: $0.05)

/fixedsampling:				1 = fixed samling: participants would catch the blue fish at the same point for each fishing round
								0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined)
									!!!Note: fixed sampling only works in this script for 'catch n'keep' condition with N = 128 fish in the pond and tripnumbers = 30
									If 'catch n'release' condition is chosen, sampling is changed automatically to random.
									If 'catch n'keep' condition is chosen, number of trips is set automatically to 30 and number of fish to 128

/fixedsamplingcheck:			1 = script automatically checks if the conditions for fixed sampling is met (if fixedsampling is selected)
									=> if not, computer adjusts the conditions: for no-release conditions, the number of fish is set to 128
									and the number of fishing trips is set to 30; for release conditions, fixed sampling is turned into 
									random sampling
								0 = script doesn't automatically check and correct conditions for fixed sampling
									=> this is useful if you want to change the list that is used for fixed sampling (->list.explosionpoint)
									and adjust it for a different number of fish in the pond or different number of fishing trips.