Advertisement
smathot

Nested loops emulation for OpenSesame

Mar 5th, 2014
427
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. # Generated by OpenSesame 2.8.0 (Gutsy Gibson)
  2. # Wed Mar 5 09:55:24 2014 (posix)
  3. # <http://www.cogsci.nl/opensesame>
  4.  
  5. set mouse_backend "xpyriment"
  6. set subject_parity "even"
  7. set height "768"
  8. set font_italic "no"
  9. set canvas_backend "xpyriment"
  10. set synth_backend "legacy"
  11. set start "experiment"
  12. set title "Nested loops"
  13. set coordinates "relative"
  14. set width "1024"
  15. set sampler_backend "legacy"
  16. set transparent_variables "no"
  17. set foreground "white"
  18. set font_bold "no"
  19. set description "A template containing a practice and an experimental phase"
  20. set background "black"
  21. set font_size "18"
  22. set keyboard_backend "legacy"
  23. set font_family "mono"
  24. set compensation "0"
  25. set bidi "no"
  26. set subject_nr "0"
  27.  
  28. define sequence dummy_sequence
  29.  
  30. define loop block_loop
  31. set repeat "4"
  32. set description "A single block of trials"
  33. set item "trial_sequence"
  34. set column_order "var1;var2"
  35. set cycles "1"
  36. set order "random"
  37. setcycle 0 var1 "=self.experiment.list1.pop()"
  38. setcycle 0 var2 "=self.experiment.list2.pop()"
  39. run trial_sequence
  40.  
  41. define sequence experiment
  42. set flush_keyboard "yes"
  43. set description "The main sequence of the experiment"
  44. run loop1 "never"
  45. run loop2 "never"
  46. run extract_loops "always"
  47. run block_loop "always"
  48.  
  49. define sequence trial_sequence
  50. set flush_keyboard "yes"
  51. set description "A single trial"
  52. run sketchpad "always"
  53.  
  54. define inline_script extract_loops
  55. set _run ""
  56. ___prepare__
  57. from random import shuffle
  58.  
  59. # Extract the column `var1` from the loop item `loop1` and save it as a list
  60. # as self.experiment.list1 (self.experiment == exp).
  61. loop1 = exp.items['loop1']
  62. exp.list1 = []
  63. for i in sorted(loop1.matrix):
  64. val = loop1.matrix[i]['var1']
  65. exp.list1.append(val)
  66. # Shuffle the list1, so that we will pop the items from it in a random order.
  67. shuffle(list1)
  68.  
  69.  
  70. # Extract the column `var2` from the loop item `loop2` and save it as a list
  71. # as self.experiment.list2 (self.experiment == exp).
  72. loop2 = exp.items['loop2']
  73. exp.list2 = []
  74. for i in sorted(loop2.matrix):
  75. val = loop2.matrix[i]['var2']
  76. exp.list2.append(val)
  77. # Reverse the list. This is necessary because we will `pop` from the list, which
  78. # means we start with the last item.
  79. list2.reverse()
  80. __end__
  81. set description "Executes Python code"
  82.  
  83. define loop loop2
  84. set repeat "1"
  85. set description "Repeatedly runs another item"
  86. set item "dummy_sequence"
  87. set break_if "always"
  88. set column_order "var2"
  89. set cycles "4"
  90. set order "random"
  91. setcycle 0 var2 "B1"
  92. setcycle 1 var2 "B2"
  93. setcycle 2 var2 "B3"
  94. setcycle 3 var2 "B4"
  95. run dummy_sequence
  96.  
  97. define loop loop1
  98. set repeat "1"
  99. set description "Repeatedly runs another item"
  100. set skip "0"
  101. set item "dummy_sequence"
  102. set break_if "always"
  103. set column_order "var1"
  104. set cycles "4"
  105. set order "sequential"
  106. setcycle 0 var1 "A1"
  107. setcycle 1 var1 "A2"
  108. setcycle 2 var1 "A3"
  109. setcycle 3 var1 "A4"
  110. run dummy_sequence
  111.  
  112. define sketchpad sketchpad
  113. set duration "keypress"
  114. set description "Displays stimuli"
  115. set start_response_interval "no"
  116. draw fixdot 0 0 color=white show_if="always"
  117. draw textline 0 -96 "[var1] [var2]" center=1 color=white font_family="mono" font_size=18 font_italic=no font_bold=no show_if="always" html="yes"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement