How to use

This is the main source code for the experiment. If you want to use it, you should copy the actual zip file to your own PsyToolkit account, because often there are other files included for stimuli.

The source code for wcst

options
  mouse on           # mouse is being used, so do not hide it
  bitmapdir stimuli  # location of the bitmaps
  sounddir stimuli   # location of sound files
  escape             # you can escape by holding escape until end of trial

fonts
  arial 18

bitmaps
  circle1blue        # this refers to bitmaps/circle1blue.png
  circle1green       # etc.
  circle1red         # each card is 100x100px
  circle1yellow      # you can change this, of course, making
  circle2blue        # changes to the SVG file
  circle2green
  circle2red
  circle2yellow
  circle3blue
  circle3green
  circle3red
  circle3yellow
  circle4blue
  circle4green
  circle4red
  circle4yellow
  cross1blue
  cross1green
  cross1red
  cross1yellow
  cross2blue
  cross2green
  cross2red
  cross2yellow
  cross3blue
  cross3green
  cross3red
  cross3yellow
  cross4blue
  cross4green
  cross4red
  cross4yellow
  star1blue
  star1green
  star1red
  star1yellow
  star2blue
  star2green
  star2red
  star2yellow
  star3blue
  star3green
  star3red
  star3yellow
  star4blue
  star4green
  star4red
  star4yellow
  triangle1blue
  triangle1green
  triangle1red
  triangle1yellow
  triangle2blue
  triangle2green
  triangle2red
  triangle2yellow
  triangle3blue
  triangle3green
  triangle3red
  triangle3yellow
  triangle4blue
  triangle4green
  triangle4red
  triangle4yellow
  correct            
  error
  wcst_title
  instruction1
  instruction2
  instruction3
  tooslow

sounds
  good  # this sound file is taken from gnomebaker
  wrong # this sound file is taken is from tuxcart

# you can create a different table with wcst.r and include it here

table wcsttable
  include table.txt

# one line of the table consists of the following information
# column 1 : card
# column 2 : response (bitmap to be clicked 1 to 4)
# colomn 3 : response in previous task (or 0 if no previous task)
# column 4 : trial number in a task sequence, 1 is first, thus rule switch
# column 5 : name of the task 
# column 6 : stimulus description

task wcst
  delay 1000       # wait 1 second
  show bitmap circle1red     -175 -100  # bitmap number 1
  show bitmap triangle2green  -25 -100  # bitmap number 2
  show bitmap cross3blue      125 -100  # bitmap number 3
  show bitmap star4yellow     275 -100  # bitmap number 4
  show bitmap @1             -300  200  # bitmap number 5
  set $a 0         # once clicked, $a will be clicked-bitmap number 
  readmouse l @2 10000 range 1 4 # wait for left mouse click on rect 1-4 for 10sec
  set $a UNDER_MOUSE
  clear 5          # erase the last bitmap from screen
  if $a == 1       # if bitmap 1 was clicked, set variable newx to -175
    set $newx -175
  fi               # end of if statement
  if $a == 2
    set $newx -25
  fi
  if $a == 3
    set $newx 125
  fi
  if $a == 4
    set $newx 275
  fi
  if $a > 0 and STATUS != TIMEOUT
    show bitmap @1 $newx 25 # show the same card (6) underneath the one clicked
  fi
  delay 500                # keep it for 500 ms
  if STATUS == CORRECT     # if match was correct
    sound good             # give vocal feedback 
    show bitmap correct $newx 100  # show message "correct", bitmap 7
    clear -1
    delay 200
    show bitmap correct $newx 100  # show message "correct", bitmap 7
  fi
  if STATUS == WRONG       # if match was incorrect
    sound wrong            # give vocal feedback 
    show bitmap error $newx 100    # show message "error", bitmap 7
    delay 200
    hide -1
    delay 200
    unhide -1
  fi
  if STATUS == TIMEOUT     # if match was incorrect
    sound wrong            # give vocal feedback 
    show bitmap tooslow 75 100 # show message "timeout", bitmap 7
    delay 200
    clear -1
    delay 200
    show bitmap tooslow 75 100 # show message "error", bitmap 8
  fi
  delay 1000               # wait a second for feedback to be read/heard
  clear 6 7                # clear feedback card (6) and feedback message (7)
  ## determine what type of error this was
  set $anyerror 0
  set $nonperseverationerror 0
  set $perseverationerror    0  
  if STATUS != CORRECT
    set $anyerror 1
    if $a == @3
      set $perseverationerror 1
    fi
    if $a != @3
      set $nonperseverationerror 1
    fi
  fi
  save @1 @2 @3 @4 @5 @6 RT STATUS $a $anyerror $perseverationerror $nonperseverationerror

block wcstblock # there is just one block. Name it "wcstblock"
  message wcst_title
  pager instruction1 instruction2 instruction3
  task wcst 60 fixed # 60 trials, fixed follows order of table, is essential
  feedback
    set &NumErrors   sum c12
    set &PercErrors  perc ; select c12 == 1
    set &NumPers     sum c13
    set &PercPers    perc ; select c13 == 1
    set &NumNonPers  sum c14
    set &PercNonPers perc ; select c14 == 1
    text color yellow
    text align left
    text -200 -200  "Feedback on your WCST performance"
    text -200 -150  "(Note: There were in total 60 trials)"
    text -200  -50  &NumErrors   ; prefix "Error count:  "
    text  200  -50  &PercErrors  ; prefix "(" ; postfix "%)"
    text -200    0  &NumPers     ; prefix "Perseveration error count:  " 
    text  200    0  &PercPers    ; prefix "(" ; postfix "%)"
    text -200   50  &NumNonPers  ; prefix "Non-perseveration error count:  " 
    text  200   50  &PercNonPers ; prefix "(" ; postfix "%)"
    text -200  200  "Press space bar to continue"
  end