/* Not a full IAT but a design file which shows how it could be done. This demo is a replication of a demo which may be found at https://implicit.harvard.edu. They call it the 'Age IAT'. This design file is written such that it is easy to plug in all kind of IAT-stories. */
Experiment(){
Context(){
AssignmentGroup(){
ExperimentName = "Implicit Associations Test";
SubjectCode = "pxlab";
new cat1a = "Old";
new cat1b = "Young";
new cat2a = "Good";
new cat2b = "Bad";
new categories = 0;
new item = 0;
new cat1aPosition = 0;
new cat1bPosition = 0;
new cat2aPosition = 0;
new cat2bPosition = 0;
SkipBoundingBlockDisplays = 0;
}
Session(){
Instruction(){
Text = ["Implicit Associations", " ", "You will see two category descriptions. One is at the top left, and one is at the top right corner of the screen.", "Your task is to categorize each stimulus shown at the screen center into the left or the right category.", "You do this by pressing the left or right cursor key depending on whether the stimulus belongs to the left or right category.", "This should be done as fast as possible, but no errors are allowed!", "If you make an error then a red cross appears and you have to correct your response.", " ", "Press any key now to start the experiment."];
}
}
SessionEnd(){
SessionEndMessage(){
}
}
/* Real IAT applications should add a BlockStartMessage() here in order to present the block specific instructions. */
Block( categories, cat1aPosition, cat1bPosition, cat2aPosition, cat2bPosition);
/* This is a trial with a text stimulus. */
Trial:T( item, Feedback.CorrectCode, Feedback.Response, Feedback.ResponseTime, Message.ResponseTime){
TextParagraphMultiple(){
LocationX = [-300.0, 300];
LocationY = [-200, -200];
ReferencePoint = [de.pxlab.pxl.PositionReferenceCodes.MIDDLE_RIGHT, de.pxlab.pxl.PositionReferenceCodes.MIDDLE_LEFT];
Alignment = [de.pxlab.pxl.AlignmentCodes.RIGHT, de.pxlab.pxl.AlignmentCodes.LEFT];
Text = categories;
Timer = de.pxlab.pxl.TimerCodes.NO_TIMER;
Overlay = de.pxlab.pxl.OverlayCodes.DISPLAY_LIST;
}
Message(){
Text = item;
Timer = de.pxlab.pxl.TimerCodes.RESPONSE_TIMER;
ResponseSet = [de.pxlab.pxl.KeyCodes.LEFT_KEY, de.pxlab.pxl.KeyCodes.RIGHT_KEY];
}
Feedback(){
ResponseParameter = Trial:T.Message.ResponseCode;
Evaluation = CHECK_NOGO;
FalseText = "X";
Color = red();
Timer = de.pxlab.pxl.TimerCodes.RESPONSE_TIMER;
ResponseSet = (Trial:T.Feedback.CorrectCode==0)? de.pxlab.pxl.KeyCodes.LEFT_KEY: de.pxlab.pxl.KeyCodes.RIGHT_KEY;
Overlay = de.pxlab.pxl.OverlayCodes.TRANSPARENT;
FontSize = 72;
LocationY = 280;
}
ClearScreen(){
Timer = de.pxlab.pxl.TimerCodes.CLOCK_TIMER;
Duration = 500;
}
}
/* This is a trial with a picture stimulus. */
Trial:P( item, Feedback.CorrectCode, Feedback.Response, Feedback.ResponseTime, Picture.ResponseTime){
TextParagraphMultiple(){
LocationX = [-300.0, 300];
LocationY = [-200, -200];
ReferencePoint = [de.pxlab.pxl.PositionReferenceCodes.MIDDLE_RIGHT, de.pxlab.pxl.PositionReferenceCodes.MIDDLE_LEFT];
Alignment = [de.pxlab.pxl.AlignmentCodes.RIGHT, de.pxlab.pxl.AlignmentCodes.LEFT];
Text = categories;
Timer = de.pxlab.pxl.TimerCodes.NO_TIMER;
Overlay = de.pxlab.pxl.OverlayCodes.DISPLAY_LIST;
}
Picture(){
FileName = item;
Directory = "./images/old_young";
Timer = de.pxlab.pxl.TimerCodes.RESPONSE_TIMER;
ResponseSet = [de.pxlab.pxl.KeyCodes.LEFT_KEY, de.pxlab.pxl.KeyCodes.RIGHT_KEY];
}
Feedback(){
ResponseParameter = Trial:P.Picture.ResponseCode;
Evaluation = CHECK_NOGO;
FalseText = "X";
Color = red();
Timer = de.pxlab.pxl.TimerCodes.RESPONSE_TIMER;
ResponseSet = (Trial:P.Feedback.CorrectCode==0)? de.pxlab.pxl.KeyCodes.LEFT_KEY: de.pxlab.pxl.KeyCodes.RIGHT_KEY;
Overlay = de.pxlab.pxl.OverlayCodes.TRANSPARENT;
FontSize = 72;
LocationY = 280;
}
ClearScreen(){
Timer = de.pxlab.pxl.TimerCodes.CLOCK_TIMER;
Duration = 500;
}
}
// Command line assignments
AssignmentGroup();
}
Procedure(){
Session(){
Block( ["%cat1a%\nor\n%cat2a%", "%cat1b%\nor\n%cat2b%"], 0, 1, 0, 1){
/* old - female */
Trial:P( "klappma0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "adlerbr0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "augusan0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "babelgi0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "holzhin0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "maschul0.jpg", cat1aPosition, ?, ?, ?);
/* old - male */
Trial:P( "dzembde0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "eich_lu0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "graf_gu0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "meinlru0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "jordaha0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "jens_uw0.jpg", cat1aPosition, ?, ?, ?);
/* young - female */
Trial:P( "scharel0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "probssi0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "noltecl0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "maierpi0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "luehran0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "koehlkr0.jpg", cat1bPosition, ?, ?, ?);
/* young - male */
Trial:P( "braukra0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "dieckro0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "meierho0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "haibaho0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "heil_hu0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "hennrmi0.jpg", cat1bPosition, ?, ?, ?);
Trial:T( "Joy", cat2aPosition, ?, ?, ?);
Trial:T( "Love", cat2aPosition, ?, ?, ?);
Trial:T( "Peace", cat2aPosition, ?, ?, ?);
Trial:T( "Wonderful", cat2aPosition, ?, ?, ?);
Trial:T( "Pleasure", cat2aPosition, ?, ?, ?);
Trial:T( "Glorious", cat2aPosition, ?, ?, ?);
Trial:T( "Laughter", cat2aPosition, ?, ?, ?);
Trial:T( "Happy", cat2aPosition, ?, ?, ?);
Trial:T( "Nice", cat2aPosition, ?, ?, ?);
Trial:T( "Win", cat2aPosition, ?, ?, ?);
Trial:T( "Lucky", cat2aPosition, ?, ?, ?);
Trial:T( "High", cat2aPosition, ?, ?, ?);
Trial:T( "Agony", cat2bPosition, ?, ?, ?);
Trial:T( "Terrible", cat2bPosition, ?, ?, ?);
Trial:T( "Horrible", cat2bPosition, ?, ?, ?);
Trial:T( "Nasty", cat2bPosition, ?, ?, ?);
Trial:T( "Evil", cat2bPosition, ?, ?, ?);
Trial:T( "Awful", cat2bPosition, ?, ?, ?);
Trial:T( "Failure", cat2bPosition, ?, ?, ?);
Trial:T( "Hurt", cat2bPosition, ?, ?, ?);
Trial:T( "Hate", cat2bPosition, ?, ?, ?);
Trial:T( "Loose", cat2bPosition, ?, ?, ?);
Trial:T( "Sadness", cat2bPosition, ?, ?, ?);
Trial:T( "Down", cat2bPosition, ?, ?, ?);
}
Block( ["%cat1b%\nor\n%cat2a%", "%cat1a%\nor\n%cat2b%"], 1, 0, 0, 1){
/* old - female */
Trial:P( "klappma0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "adlerbr0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "augusan0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "babelgi0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "holzhin0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "maschul0.jpg", cat1aPosition, ?, ?, ?);
/* old - male */
Trial:P( "dzembde0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "eich_lu0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "graf_gu0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "meinlru0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "jordaha0.jpg", cat1aPosition, ?, ?, ?);
Trial:P( "jens_uw0.jpg", cat1aPosition, ?, ?, ?);
/* young - female */
Trial:P( "scharel0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "probssi0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "noltecl0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "maierpi0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "luehran0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "koehlkr0.jpg", cat1bPosition, ?, ?, ?);
/* young - male */
Trial:P( "braukra0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "dieckro0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "meierho0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "haibaho0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "heil_hu0.jpg", cat1bPosition, ?, ?, ?);
Trial:P( "hennrmi0.jpg", cat1bPosition, ?, ?, ?);
Trial:T( "Joy", cat2aPosition, ?, ?, ?);
Trial:T( "Love", cat2aPosition, ?, ?, ?);
Trial:T( "Peace", cat2aPosition, ?, ?, ?);
Trial:T( "Wonderful", cat2aPosition, ?, ?, ?);
Trial:T( "Pleasure", cat2aPosition, ?, ?, ?);
Trial:T( "Glorious", cat2aPosition, ?, ?, ?);
Trial:T( "Laughter", cat2aPosition, ?, ?, ?);
Trial:T( "Happy", cat2aPosition, ?, ?, ?);
Trial:T( "Nice", cat2aPosition, ?, ?, ?);
Trial:T( "Win", cat2aPosition, ?, ?, ?);
Trial:T( "Lucky", cat2aPosition, ?, ?, ?);
Trial:T( "High", cat2aPosition, ?, ?, ?);
Trial:T( "Agony", cat2bPosition, ?, ?, ?);
Trial:T( "Terrible", cat2bPosition, ?, ?, ?);
Trial:T( "Horrible", cat2bPosition, ?, ?, ?);
Trial:T( "Nasty", cat2bPosition, ?, ?, ?);
Trial:T( "Evil", cat2bPosition, ?, ?, ?);
Trial:T( "Awful", cat2bPosition, ?, ?, ?);
Trial:T( "Failure", cat2bPosition, ?, ?, ?);
Trial:T( "Hurt", cat2bPosition, ?, ?, ?);
Trial:T( "Hate", cat2bPosition, ?, ?, ?);
Trial:T( "Loose", cat2bPosition, ?, ?, ?);
Trial:T( "Sadness", cat2bPosition, ?, ?, ?);
Trial:T( "Down", cat2bPosition, ?, ?, ?);
}
}
}
}