﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 6  » Learning to criterion</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Tue, 14 Apr 2026 09:11:50 GMT</lastBuildDate><ttl>20</ttl><item><title>Learning to criterion</title><link>https://forums.millisecond.com/Topic36554.aspx</link><description>Hi Dave,&lt;br/&gt;&lt;br/&gt;I'm adapting a task I've already created to include the ability to drop any stimuli that have been learnt to a specific criterion.&lt;br/&gt;What is the best way to go about this? After looking on the forums and language reference, I can't seem to find any reference to criterion elements.&lt;br/&gt;&lt;br/&gt;Thanks in advance!&lt;a id="ctl00_ctlContentPlaceHolder_ctl00_ctl00_ctlQuickPost_ctl00_ctlPanelBar_butSubmit" class="i-btn i-btn-2x i-btn-primary" href="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&amp;quot;ctl00$ctlContentPlaceHolder$ctl00$ctl00$ctlQuickPost$ctl00$ctlPanelBar$butSubmit&amp;quot;, &amp;quot;&amp;quot;, true, &amp;quot;ctl00_ctlContentPlaceHolder_ctl00_ctl00_ctlQuickPost&amp;quot;, &amp;quot;&amp;quot;, false, true))"&gt;&lt;br/&gt;&lt;/a&gt;</description><pubDate>Thu, 07 Nov 2024 13:06:44 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36619.aspx</link><description>&lt;blockquote data-id="36618" class="if-quote-wrapper" unselectable="on" data-guid="1730984780961" contenteditable="false" id="if_insertedNode_1730984780269"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36618" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36618" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36618" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/6/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36618"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36617" class="if-quote-wrapper" unselectable="on" data-guid="1730984780961" contenteditable="false" id="if_insertedNode_1730893987417"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36617" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36617" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36617" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 11/6/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36617"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36616" class="if-quote-wrapper" unselectable="on" data-guid="1730984780961" contenteditable="false" id="if_insertedNode_1730816726793"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36616" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36616" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36616" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/5/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36616"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;[code]/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_1" &amp;amp;&amp;amp; values.trial_a_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_2" &amp;amp;&amp;amp; values.trial_b_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;][/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36616"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave, thanks for your reply.&lt;br/&gt;&lt;br/&gt;I tried running the following code with three conditions, but when the first condition is met, it skips both the first and second conditions, and just keeps looping through trial_c instead.&lt;br/&gt;[code]/ skip = [&lt;br/&gt;&amp;nbsp; if (script.currentblock == "block_1" &amp;amp;&amp;amp; values.trial_a_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  return true;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp; if (script.currentblock == "block_2" &amp;amp;&amp;amp; values.trial_b_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  return true;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;  if (script.currentblock == "block_3" &amp;amp;&amp;amp; values.trial_c_criterion_learned) {&lt;br/&gt;&amp;nbsp;return true;&lt;br/&gt;  };&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;Any ideas?&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36617"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Post runnable code.&lt;a class="if-quote-goto quote-link" href="#" data-id="36618"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;I managed to find a workaround.&lt;br/&gt;Thanks!</description><pubDate>Thu, 07 Nov 2024 13:06:44 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36618.aspx</link><description>&lt;blockquote data-id="36617" class="if-quote-wrapper" unselectable="on" data-guid="1730893988304" contenteditable="false" id="if_insertedNode_1730893987417"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36617" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36617" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36617" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 11/6/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36617"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36616" class="if-quote-wrapper" unselectable="on" data-guid="1730893988304" contenteditable="false" id="if_insertedNode_1730816726793"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36616" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36616" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36616" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/5/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36616"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;[code]/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_1" &amp;amp;&amp;amp; values.trial_a_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_2" &amp;amp;&amp;amp; values.trial_b_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;][/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36616"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave, thanks for your reply.&lt;br/&gt;&lt;br/&gt;I tried running the following code with three conditions, but when the first condition is met, it skips both the first and second conditions, and just keeps looping through trial_c instead.&lt;br/&gt;[code]/ skip = [&lt;br/&gt;&amp;nbsp; if (script.currentblock == "block_1" &amp;amp;&amp;amp; values.trial_a_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  return true;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp; if (script.currentblock == "block_2" &amp;amp;&amp;amp; values.trial_b_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  return true;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;  if (script.currentblock == "block_3" &amp;amp;&amp;amp; values.trial_c_criterion_learned) {&lt;br/&gt;&amp;nbsp;return true;&lt;br/&gt;  };&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;Any ideas?&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36617"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Post runnable code.</description><pubDate>Wed, 06 Nov 2024 11:53:21 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36617.aspx</link><description>&lt;blockquote data-id="36616" class="if-quote-wrapper" unselectable="on" data-guid="1730816727335" contenteditable="false" id="if_insertedNode_1730816726793"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36616" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36616" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36616" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 11/5/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36616"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;[code]/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_1" &amp;amp;&amp;amp; values.trial_a_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_2" &amp;amp;&amp;amp; values.trial_b_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;][/code]&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36616"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave, thanks for your reply.&lt;br/&gt;&lt;br/&gt;I tried running the following code with three conditions, but when the first condition is met, it skips both the first and second conditions, and just keeps looping through trial_c instead.&lt;br/&gt;[code]/ skip = [&lt;br/&gt;&amp;nbsp; if (script.currentblock == "block_1" &amp;amp;&amp;amp; values.trial_a_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  return true;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp; if (script.currentblock == "block_2" &amp;amp;&amp;amp; values.trial_b_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  return true;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;  if (script.currentblock == "block_3" &amp;amp;&amp;amp; values.trial_c_criterion_learned) {&lt;br/&gt;&amp;nbsp;return true;&lt;br/&gt;  };&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;Any ideas?&lt;br/&gt;&lt;br/&gt;</description><pubDate>Wed, 06 Nov 2024 08:10:25 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36616.aspx</link><description>[code]/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_1" &amp;amp;&amp;amp; values.trial_a_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (script.currentblock == "block_2" &amp;amp;&amp;amp; values.trial_b_criterion_learned) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;][/code]&lt;br/&gt;</description><pubDate>Tue, 05 Nov 2024 12:00:46 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36615.aspx</link><description>&lt;blockquote data-id="36612" class="if-quote-wrapper" unselectable="on" data-guid="1730802918198" contenteditable="false" id="if_insertedNode_1730802917245"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36612" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36612" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36612" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/30/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36612"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36610" class="if-quote-wrapper" unselectable="on" data-guid="1730802918198" contenteditable="false" id="if_insertedNode_1730300424602"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36610" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36610" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36610" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/30/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36610"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36609" class="if-quote-wrapper" unselectable="on" data-guid="1730802918198" contenteditable="false" id="if_insertedNode_1730286373991"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36609" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36609" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36609" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/30/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36609"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36602" class="if-quote-wrapper" unselectable="on" data-guid="1730802918198" contenteditable="false" id="if_insertedNode_1730276756940"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36602" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36602" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36602" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36602"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36601" class="if-quote-wrapper" unselectable="on" data-guid="1730802918198" contenteditable="false" id="if_insertedNode_1730217139198"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36601" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36601" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36601" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36601"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;br/&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Given the code below:&lt;br/&gt;1. How can I make it so that when the response is "a" 3 or more times for both/either the a1 and a2 trials, both the a1 and a2 trials are skipped when that criterion is met. The same applies for the b1 and b2 trials. Despite the fact that the a2 trial's correct response is "b", and the b2 trial's correct response is "a"? So, essentially, regardless of the correct response for trials a1 and a2, the criterion should be based on the desired response, which is "a" for the a_trials, and "b" for the b_trials.&lt;br/&gt;&lt;br/&gt;2. Is there a way to counterbalance for odd/even participant numbers using expt so that the desired responses are switched (e.g., for even numbered participants, the desired response for the a1 and a2 trials is now "b", and the desired response for the&amp;nbsp; b1 and b2 trials is now "a"?&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block1]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block2]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ a1_learned = false&lt;br/&gt;/ a2_learned = false&lt;br/&gt;&lt;br/&gt;/ b_learned = false&lt;br/&gt;/ b1_learned = false&lt;br/&gt;/ b2_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_trial_count = trial.a1_trial.trialcount + trial.a2_trial.trialcount&lt;br/&gt;/ b_trial_count = trial.b1_trial.trialcount + trial.b2_trial.trialcount&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^A desired response: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A1 trials in this block: &amp;lt;%trial.a1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A1 trials in this block: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A1 learned: &amp;lt;%values.a1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A2 trials in this block: &amp;lt;%trial.a2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A2 trials in this block: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A2 learned: &amp;lt;%values.a2_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^B desired response: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B1 trials in this block: &amp;lt;%trial.b1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B1 trials in this block: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B1 learned: &amp;lt;%values.b1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B2 trials in this block: &amp;lt;%trial.b2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B2 trials in this block: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B2 learned: &amp;lt;%values.b2_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block1&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;    if (values.num_a_trials_response_a &amp;gt;= 3) {&lt;br/&gt;        values.a1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a2_learned = true;&lt;br/&gt;    };&lt;br/&gt;    if (values.num_b_trials_response_b &amp;gt;= 3) {&lt;br/&gt;        values.b1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b2_learned = true;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (!values.a1_learned || !values.a2_learned || !values.b1_learned || !values.b2_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;        return block.learning_block;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a1_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a1_correct = trial.a1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a2_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a2_correct = trial.a2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b1_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b1_correct = trial.b1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b2_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b2_correct = trial.b2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%values.num_a1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%values.num_a2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%values.num_b1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%values.num_b2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;    values.num_a1_correct values.num_a2_correct values.num_b1_correct values.num_b2_correct trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;    values.a1_learned, values.a2_learned, values.b1_learned values.b2_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36601"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;You count things up in variables and skip on that basis. As simple as that.&lt;br/&gt;&lt;br/&gt;As for counterbalancing, parameterize the correct responses, define two expt elements, set the correct responses to the applicable values /onexptbegin respectively.&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36602"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks! Would it be a case of using an IF statement to count if the desired key was pressed in each trial, or is there a more efficient way to achieve this?&lt;br/&gt;&lt;br/&gt;For example, if the desired response is "z" (scan code 44):&lt;br/&gt;&lt;br/&gt;[code]/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.a_trial.response == 44) { &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36609"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Yes, as you can clearly see in the example code I gave you.&lt;br/&gt;&lt;br/&gt;No, there isn't a more eficient way, and there is nothing inefficient about using conditional logic in the first place&lt;a class="if-quote-goto quote-link" href="#" data-id="36610"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, sounds good. Thanks for all your help so far! &lt;span id="if_insertedNode_1730300449566"&gt;:)&lt;/span&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36612"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Is it possible to have conditional statements within /skip?&lt;br/&gt;&lt;br/&gt;For example, in the following code, I'd like the trial to be skipped if either the block_1 trial_a has been learned, or the block_2 trial_b has been learned:&lt;br/&gt;&lt;br/&gt;[code]/ skip = [&lt;br/&gt;    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;block.block_1 &amp;amp;&amp;amp; values.trial_a_criterion_learned;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;block.block_2 &amp;amp;&amp;amp; values.trial_b_criterion_learned;&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Thanks!&lt;br/&gt;</description><pubDate>Tue, 05 Nov 2024 10:43:13 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36612.aspx</link><description>&lt;blockquote data-id="36610" class="if-quote-wrapper" unselectable="on" data-guid="1730300425940" contenteditable="false" id="if_insertedNode_1730300424602"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36610" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36610" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36610" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/30/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36610"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36609" class="if-quote-wrapper" unselectable="on" data-guid="1730300425940" contenteditable="false" id="if_insertedNode_1730286373991"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36609" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36609" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36609" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/30/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36609"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36602" class="if-quote-wrapper" unselectable="on" data-guid="1730300425940" contenteditable="false" id="if_insertedNode_1730276756940"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36602" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36602" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36602" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36602"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36601" class="if-quote-wrapper" unselectable="on" data-guid="1730300425940" contenteditable="false" id="if_insertedNode_1730217139198"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36601" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36601" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36601" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36601"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;br/&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Given the code below:&lt;br/&gt;1. How can I make it so that when the response is "a" 3 or more times for both/either the a1 and a2 trials, both the a1 and a2 trials are skipped when that criterion is met. The same applies for the b1 and b2 trials. Despite the fact that the a2 trial's correct response is "b", and the b2 trial's correct response is "a"? So, essentially, regardless of the correct response for trials a1 and a2, the criterion should be based on the desired response, which is "a" for the a_trials, and "b" for the b_trials.&lt;br/&gt;&lt;br/&gt;2. Is there a way to counterbalance for odd/even participant numbers using expt so that the desired responses are switched (e.g., for even numbered participants, the desired response for the a1 and a2 trials is now "b", and the desired response for the&amp;nbsp; b1 and b2 trials is now "a"?&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block1]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block2]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ a1_learned = false&lt;br/&gt;/ a2_learned = false&lt;br/&gt;&lt;br/&gt;/ b_learned = false&lt;br/&gt;/ b1_learned = false&lt;br/&gt;/ b2_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_trial_count = trial.a1_trial.trialcount + trial.a2_trial.trialcount&lt;br/&gt;/ b_trial_count = trial.b1_trial.trialcount + trial.b2_trial.trialcount&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^A desired response: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A1 trials in this block: &amp;lt;%trial.a1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A1 trials in this block: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A1 learned: &amp;lt;%values.a1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A2 trials in this block: &amp;lt;%trial.a2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A2 trials in this block: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A2 learned: &amp;lt;%values.a2_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^B desired response: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B1 trials in this block: &amp;lt;%trial.b1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B1 trials in this block: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B1 learned: &amp;lt;%values.b1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B2 trials in this block: &amp;lt;%trial.b2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B2 trials in this block: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B2 learned: &amp;lt;%values.b2_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block1&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;    if (values.num_a_trials_response_a &amp;gt;= 3) {&lt;br/&gt;        values.a1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a2_learned = true;&lt;br/&gt;    };&lt;br/&gt;    if (values.num_b_trials_response_b &amp;gt;= 3) {&lt;br/&gt;        values.b1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b2_learned = true;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (!values.a1_learned || !values.a2_learned || !values.b1_learned || !values.b2_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;        return block.learning_block;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a1_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a1_correct = trial.a1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a2_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a2_correct = trial.a2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b1_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b1_correct = trial.b1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b2_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b2_correct = trial.b2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%values.num_a1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%values.num_a2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%values.num_b1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%values.num_b2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;    values.num_a1_correct values.num_a2_correct values.num_b1_correct values.num_b2_correct trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;    values.a1_learned, values.a2_learned, values.b1_learned values.b2_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36601"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;You count things up in variables and skip on that basis. As simple as that.&lt;br/&gt;&lt;br/&gt;As for counterbalancing, parameterize the correct responses, define two expt elements, set the correct responses to the applicable values /onexptbegin respectively.&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36602"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks! Would it be a case of using an IF statement to count if the desired key was pressed in each trial, or is there a more efficient way to achieve this?&lt;br/&gt;&lt;br/&gt;For example, if the desired response is "z" (scan code 44):&lt;br/&gt;&lt;br/&gt;[code]/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.a_trial.response == 44) { &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36609"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Yes, as you can clearly see in the example code I gave you.&lt;br/&gt;&lt;br/&gt;No, there isn't a more eficient way, and there is nothing inefficient about using conditional logic in the first place&lt;a class="if-quote-goto quote-link" href="#" data-id="36610"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, sounds good. Thanks for all your help so far! &lt;span id="if_insertedNode_1730300449566"&gt;:)&lt;/span&gt;</description><pubDate>Wed, 30 Oct 2024 15:03:13 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36610.aspx</link><description>&lt;blockquote data-id="36609" class="if-quote-wrapper" unselectable="on" data-guid="1730286375032" contenteditable="false" id="if_insertedNode_1730286373991"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36609" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36609" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36609" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/30/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36609"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36602" class="if-quote-wrapper" unselectable="on" data-guid="1730286375032" contenteditable="false" id="if_insertedNode_1730276756940"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36602" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36602" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36602" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36602"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36601" class="if-quote-wrapper" unselectable="on" data-guid="1730286375032" contenteditable="false" id="if_insertedNode_1730217139198"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36601" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36601" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36601" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36601"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;br/&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Given the code below:&lt;br/&gt;1. How can I make it so that when the response is "a" 3 or more times for both/either the a1 and a2 trials, both the a1 and a2 trials are skipped when that criterion is met. The same applies for the b1 and b2 trials. Despite the fact that the a2 trial's correct response is "b", and the b2 trial's correct response is "a"? So, essentially, regardless of the correct response for trials a1 and a2, the criterion should be based on the desired response, which is "a" for the a_trials, and "b" for the b_trials.&lt;br/&gt;&lt;br/&gt;2. Is there a way to counterbalance for odd/even participant numbers using expt so that the desired responses are switched (e.g., for even numbered participants, the desired response for the a1 and a2 trials is now "b", and the desired response for the&amp;nbsp; b1 and b2 trials is now "a"?&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block1]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block2]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ a1_learned = false&lt;br/&gt;/ a2_learned = false&lt;br/&gt;&lt;br/&gt;/ b_learned = false&lt;br/&gt;/ b1_learned = false&lt;br/&gt;/ b2_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_trial_count = trial.a1_trial.trialcount + trial.a2_trial.trialcount&lt;br/&gt;/ b_trial_count = trial.b1_trial.trialcount + trial.b2_trial.trialcount&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^A desired response: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A1 trials in this block: &amp;lt;%trial.a1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A1 trials in this block: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A1 learned: &amp;lt;%values.a1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A2 trials in this block: &amp;lt;%trial.a2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A2 trials in this block: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A2 learned: &amp;lt;%values.a2_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^B desired response: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B1 trials in this block: &amp;lt;%trial.b1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B1 trials in this block: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B1 learned: &amp;lt;%values.b1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B2 trials in this block: &amp;lt;%trial.b2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B2 trials in this block: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B2 learned: &amp;lt;%values.b2_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block1&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;    if (values.num_a_trials_response_a &amp;gt;= 3) {&lt;br/&gt;        values.a1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a2_learned = true;&lt;br/&gt;    };&lt;br/&gt;    if (values.num_b_trials_response_b &amp;gt;= 3) {&lt;br/&gt;        values.b1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b2_learned = true;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (!values.a1_learned || !values.a2_learned || !values.b1_learned || !values.b2_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;        return block.learning_block;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a1_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a1_correct = trial.a1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a2_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a2_correct = trial.a2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b1_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b1_correct = trial.b1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b2_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b2_correct = trial.b2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%values.num_a1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%values.num_a2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%values.num_b1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%values.num_b2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;    values.num_a1_correct values.num_a2_correct values.num_b1_correct values.num_b2_correct trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;    values.a1_learned, values.a2_learned, values.b1_learned values.b2_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36601"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;You count things up in variables and skip on that basis. As simple as that.&lt;br/&gt;&lt;br/&gt;As for counterbalancing, parameterize the correct responses, define two expt elements, set the correct responses to the applicable values /onexptbegin respectively.&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36602"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks! Would it be a case of using an IF statement to count if the desired key was pressed in each trial, or is there a more efficient way to achieve this?&lt;br/&gt;&lt;br/&gt;For example, if the desired response is "z" (scan code 44):&lt;br/&gt;&lt;br/&gt;[code]/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.a_trial.response == 44) { &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36609"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Yes, as you can clearly see in the example code I gave you.&lt;br/&gt;&lt;br/&gt;No, there isn't a more eficient way, and there is nothing inefficient about using conditional logic in the first place</description><pubDate>Wed, 30 Oct 2024 11:07:11 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36609.aspx</link><description>&lt;blockquote data-id="36602" class="if-quote-wrapper" unselectable="on" data-guid="1730276757235" contenteditable="false" id="if_insertedNode_1730276756940"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36602" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36602" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36602" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36602"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36601" class="if-quote-wrapper" unselectable="on" data-guid="1730276757235" contenteditable="false" id="if_insertedNode_1730217139198"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36601" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36601" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36601" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36601"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;br/&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Given the code below:&lt;br/&gt;1. How can I make it so that when the response is "a" 3 or more times for both/either the a1 and a2 trials, both the a1 and a2 trials are skipped when that criterion is met. The same applies for the b1 and b2 trials. Despite the fact that the a2 trial's correct response is "b", and the b2 trial's correct response is "a"? So, essentially, regardless of the correct response for trials a1 and a2, the criterion should be based on the desired response, which is "a" for the a_trials, and "b" for the b_trials.&lt;br/&gt;&lt;br/&gt;2. Is there a way to counterbalance for odd/even participant numbers using expt so that the desired responses are switched (e.g., for even numbered participants, the desired response for the a1 and a2 trials is now "b", and the desired response for the&amp;nbsp; b1 and b2 trials is now "a"?&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block1]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block2]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ a1_learned = false&lt;br/&gt;/ a2_learned = false&lt;br/&gt;&lt;br/&gt;/ b_learned = false&lt;br/&gt;/ b1_learned = false&lt;br/&gt;/ b2_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_trial_count = trial.a1_trial.trialcount + trial.a2_trial.trialcount&lt;br/&gt;/ b_trial_count = trial.b1_trial.trialcount + trial.b2_trial.trialcount&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^A desired response: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A1 trials in this block: &amp;lt;%trial.a1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A1 trials in this block: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A1 learned: &amp;lt;%values.a1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A2 trials in this block: &amp;lt;%trial.a2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A2 trials in this block: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A2 learned: &amp;lt;%values.a2_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^B desired response: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B1 trials in this block: &amp;lt;%trial.b1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B1 trials in this block: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B1 learned: &amp;lt;%values.b1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B2 trials in this block: &amp;lt;%trial.b2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B2 trials in this block: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B2 learned: &amp;lt;%values.b2_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block1&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;    if (values.num_a_trials_response_a &amp;gt;= 3) {&lt;br/&gt;        values.a1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a2_learned = true;&lt;br/&gt;    };&lt;br/&gt;    if (values.num_b_trials_response_b &amp;gt;= 3) {&lt;br/&gt;        values.b1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b2_learned = true;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (!values.a1_learned || !values.a2_learned || !values.b1_learned || !values.b2_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;        return block.learning_block;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a1_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a1_correct = trial.a1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a2_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a2_correct = trial.a2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b1_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b1_correct = trial.b1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b2_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b2_correct = trial.b2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%values.num_a1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%values.num_a2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%values.num_b1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%values.num_b2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;    values.num_a1_correct values.num_a2_correct values.num_b1_correct values.num_b2_correct trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;    values.a1_learned, values.a2_learned, values.b1_learned values.b2_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36601"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;You count things up in variables and skip on that basis. As simple as that.&lt;br/&gt;&lt;br/&gt;As for counterbalancing, parameterize the correct responses, define two expt elements, set the correct responses to the applicable values /onexptbegin respectively.&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36602"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Thanks! Would it be a case of using an IF statement to count if the desired key was pressed in each trial, or is there a more efficient way to achieve this?&lt;br/&gt;&lt;br/&gt;For example, if the desired response is "z" (scan code 44):&lt;br/&gt;&lt;br/&gt;[code]/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.a_trial.response == 44) { &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct += 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;</description><pubDate>Wed, 30 Oct 2024 09:32:48 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36603.aspx</link><description>&lt;blockquote data-id="36602" class="if-quote-wrapper" unselectable="on" data-guid="1730219284994" contenteditable="false" id="if_insertedNode_1730219284374"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36602" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36602" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36602" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36602"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36601" class="if-quote-wrapper" unselectable="on" data-guid="1730219284994" contenteditable="false" id="if_insertedNode_1730217139198"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36601" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36601" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36601" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36601"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;br/&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Given the code below:&lt;br/&gt;1. How can I make it so that when the response is "a" 3 or more times for both/either the a1 and a2 trials, both the a1 and a2 trials are skipped when that criterion is met. The same applies for the b1 and b2 trials. Despite the fact that the a2 trial's correct response is "b", and the b2 trial's correct response is "a"? So, essentially, regardless of the correct response for trials a1 and a2, the criterion should be based on the desired response, which is "a" for the a_trials, and "b" for the b_trials.&lt;br/&gt;&lt;br/&gt;2. Is there a way to counterbalance for odd/even participant numbers using expt so that the desired responses are switched (e.g., for even numbered participants, the desired response for the a1 and a2 trials is now "b", and the desired response for the&amp;nbsp; b1 and b2 trials is now "a"?&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block1]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block2]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ a1_learned = false&lt;br/&gt;/ a2_learned = false&lt;br/&gt;&lt;br/&gt;/ b_learned = false&lt;br/&gt;/ b1_learned = false&lt;br/&gt;/ b2_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_trial_count = trial.a1_trial.trialcount + trial.a2_trial.trialcount&lt;br/&gt;/ b_trial_count = trial.b1_trial.trialcount + trial.b2_trial.trialcount&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^A desired response: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A1 trials in this block: &amp;lt;%trial.a1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A1 trials in this block: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A1 learned: &amp;lt;%values.a1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A2 trials in this block: &amp;lt;%trial.a2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A2 trials in this block: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A2 learned: &amp;lt;%values.a2_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^B desired response: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B1 trials in this block: &amp;lt;%trial.b1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B1 trials in this block: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B1 learned: &amp;lt;%values.b1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B2 trials in this block: &amp;lt;%trial.b2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B2 trials in this block: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B2 learned: &amp;lt;%values.b2_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block1&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;    if (values.num_a_trials_response_a &amp;gt;= 3) {&lt;br/&gt;        values.a1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a2_learned = true;&lt;br/&gt;    };&lt;br/&gt;    if (values.num_b_trials_response_b &amp;gt;= 3) {&lt;br/&gt;        values.b1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b2_learned = true;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (!values.a1_learned || !values.a2_learned || !values.b1_learned || !values.b2_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;        return block.learning_block;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a1_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a1_correct = trial.a1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a2_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a2_correct = trial.a2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b1_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b1_correct = trial.b1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b2_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b2_correct = trial.b2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%values.num_a1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%values.num_a2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%values.num_b1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%values.num_b2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;    values.num_a1_correct values.num_a2_correct values.num_b1_correct values.num_b2_correct trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;    values.a1_learned, values.a2_learned, values.b1_learned values.b2_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36601"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;You count things up in variables and skip on that basis. As simple as that.&lt;br/&gt;&lt;br/&gt;As for counterbalancing, parameterize the correct responses, define two expt elements, set the correct responses to the applicable values /onexptbegin respectively.&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36602"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;These are all the exact same techniques that have already been discussed in this very thread.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;parameters&amp;gt;&lt;br/&gt;/ a1_correctkey = "?"&lt;br/&gt;/ a2_correctkey = "?"&lt;br/&gt;/ b1_correctkey = "?"&lt;br/&gt;/ b2_correctkey = "?"&lt;br/&gt;&amp;lt;/parameters&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ onexptbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.a1_correctkey = "a";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.a2_correctkey = "b";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.b1_correctkey = "b";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.b2_correctkey = "a";&lt;br/&gt;]&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ onexptbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.a1_correctkey = "b";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.a2_correctkey = "a";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.b1_correctkey = "a";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters.b2_correctkey = "b";&lt;br/&gt;]&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_skip = false&lt;br/&gt;/ b_skip = false&lt;br/&gt;/ a_responsecount = 0&lt;br/&gt;/ b_responsecount = 0&lt;br/&gt;/ a_trial_count = 0&lt;br/&gt;/ b_trial_count = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%values.a_responsecount%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'B' was the response: &amp;lt;%values.b_responsecount%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_skip;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_trial_count += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.a1_trial.responsetext == "a") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_responsecount += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.a_responsecount &amp;gt;= 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_skip = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = (parameters.a1_correctkey)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_skip;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_trial_count += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.a2_trial.responsetext == "a") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_responsecount += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.a_responsecount &amp;gt;= 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_skip = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = (parameters.a2_correctkey)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_skip;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_trial_count += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.b1_trial.responsetext == "b") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_responsecount += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.b_responsecount &amp;gt;= 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_skip = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = (parameters.b1_correctkey)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_skip;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_trial_count += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.b2_trial.responsetext == "b") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_responsecount += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.b_responsecount &amp;gt;= 3) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_skip = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = (parameters.b2_correctkey)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_responsecount, values.b_responsecount, values.a_skip, values.b_skip)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]</description><pubDate>Tue, 29 Oct 2024 16:30:06 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36602.aspx</link><description>&lt;blockquote data-id="36601" class="if-quote-wrapper" unselectable="on" data-guid="1730217140853" contenteditable="false" id="if_insertedNode_1730217139198"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36601" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36601" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36601" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/29/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36601"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;br/&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Given the code below:&lt;br/&gt;1. How can I make it so that when the response is "a" 3 or more times for both/either the a1 and a2 trials, both the a1 and a2 trials are skipped when that criterion is met. The same applies for the b1 and b2 trials. Despite the fact that the a2 trial's correct response is "b", and the b2 trial's correct response is "a"? So, essentially, regardless of the correct response for trials a1 and a2, the criterion should be based on the desired response, which is "a" for the a_trials, and "b" for the b_trials.&lt;br/&gt;&lt;br/&gt;2. Is there a way to counterbalance for odd/even participant numbers using expt so that the desired responses are switched (e.g., for even numbered participants, the desired response for the a1 and a2 trials is now "b", and the desired response for the&amp;nbsp; b1 and b2 trials is now "a"?&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block1]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block2]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ a1_learned = false&lt;br/&gt;/ a2_learned = false&lt;br/&gt;&lt;br/&gt;/ b_learned = false&lt;br/&gt;/ b1_learned = false&lt;br/&gt;/ b2_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_trial_count = trial.a1_trial.trialcount + trial.a2_trial.trialcount&lt;br/&gt;/ b_trial_count = trial.b1_trial.trialcount + trial.b2_trial.trialcount&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^A desired response: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A1 trials in this block: &amp;lt;%trial.a1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A1 trials in this block: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A1 learned: &amp;lt;%values.a1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A2 trials in this block: &amp;lt;%trial.a2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A2 trials in this block: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A2 learned: &amp;lt;%values.a2_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^B desired response: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B1 trials in this block: &amp;lt;%trial.b1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B1 trials in this block: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B1 learned: &amp;lt;%values.b1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B2 trials in this block: &amp;lt;%trial.b2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B2 trials in this block: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B2 learned: &amp;lt;%values.b2_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block1&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;    if (values.num_a_trials_response_a &amp;gt;= 3) {&lt;br/&gt;        values.a1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a2_learned = true;&lt;br/&gt;    };&lt;br/&gt;    if (values.num_b_trials_response_b &amp;gt;= 3) {&lt;br/&gt;        values.b1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b2_learned = true;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (!values.a1_learned || !values.a2_learned || !values.b1_learned || !values.b2_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;        return block.learning_block;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a1_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a1_correct = trial.a1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a2_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a2_correct = trial.a2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b1_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b1_correct = trial.b1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b2_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b2_correct = trial.b2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%values.num_a1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%values.num_a2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%values.num_b1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%values.num_b2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;    values.num_a1_correct values.num_a2_correct values.num_b1_correct values.num_b2_correct trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;    values.a1_learned, values.a2_learned, values.b1_learned values.b2_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36601"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;You count things up in variables and skip on that basis. As simple as that.&lt;br/&gt;&lt;br/&gt;As for counterbalancing, parameterize the correct responses, define two expt elements, set the correct responses to the applicable values /onexptbegin respectively.&lt;br/&gt;&lt;br/&gt;</description><pubDate>Tue, 29 Oct 2024 15:57:22 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36601.aspx</link><description>&lt;blockquote data-id="36583" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1730212905237"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36583" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36583" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36583" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/22/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36583"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36582" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1729602292117"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36582" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36582" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36582" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/22/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36582"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36581" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1729595943502"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36581" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36581" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36581" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/22/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36581"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36580" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1729562877719"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36580" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36580" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36580" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36580"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36579" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1729516538355"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36579" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36579" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36579" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36579"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36578" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1729508069133"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36578" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36578" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36578" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36578"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1729499660603"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1730212906402" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;If one stimulus has been learned, say Stimulus A, I'd like to bring in another stimulus, say Stimulus C (i.e., trial.c_trial).&lt;br/&gt;Is there a wa to achieve this without disrupting the flow of the program?&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36578"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The same approach I already showed you applies. /skip the c trial as long as either the a and b trials have not been learned. Don't skip it as soon as either has been learned.&lt;a class="if-quote-goto quote-link" href="#" data-id="36579"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, that makes sense, thanks! &lt;span id="if_insertedNode_1729516574601"&gt;:)&lt;/span&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36580"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;I have another question.&lt;br/&gt;How would I make it so that there are separate blocks for each phase of learning?&lt;br/&gt;For example, if a participant learns Stimulus A to criterion in Block 1, then there will be a break, after which they will start Block 2 where they would only be presented with Stimulus B and C, until one of them is learned to criterion, etc.&lt;br/&gt;I'm not sure how this can be done using the / skip attribute approach. Or should a different approach be used to achieve this?&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36581"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Why would that require separate blocks? But regardless, the /skip approach is just as applicable as it was before.&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36582"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, will give that a go.&lt;br/&gt;Thanks again! &lt;a class="if-quote-goto quote-link" href="#" data-id="36583"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Given the code below:&lt;br/&gt;1. How can I make it so that when the response is "a" 3 or more times for both/either the a1 and a2 trials, both the a1 and a2 trials are skipped when that criterion is met. The same applies for the b1 and b2 trials. Despite the fact that the a2 trial's correct response is "b", and the b2 trial's correct response is "a"? So, essentially, regardless of the correct response for trials a1 and a2, the criterion should be based on the desired response, which is "a" for the a_trials, and "b" for the b_trials.&lt;br/&gt;&lt;br/&gt;2. Is there a way to counterbalance for odd/even participant numbers using expt so that the desired responses are switched (e.g., for even numbered participants, the desired response for the a1 and a2 trials is now "b", and the desired response for the&amp;nbsp; b1 and b2 trials is now "a"?&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_trials_response_a = 0;&lt;br/&gt;/ num_a1_correct = 0;&lt;br/&gt;/ num_a2_correct = 0;&lt;br/&gt;&lt;br/&gt;/ num_b_trials_response_b = 0;&lt;br/&gt;/ num_b1_correct = 0;&lt;br/&gt;/ num_b2_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt one&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block1]&lt;br/&gt;/ subjects = (1 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt two&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block2]&lt;br/&gt;/ subjects = (2 of 2)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ a1_learned = false&lt;br/&gt;/ a2_learned = false&lt;br/&gt;&lt;br/&gt;/ b_learned = false&lt;br/&gt;/ b1_learned = false&lt;br/&gt;/ b2_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_trial_count = trial.a1_trial.trialcount + trial.a2_trial.trialcount&lt;br/&gt;/ b_trial_count = trial.b1_trial.trialcount + trial.b2_trial.trialcount&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%values.a_trial_count%&amp;gt;&lt;br/&gt;^Number of A trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^A desired response: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A1 trials in this block: &amp;lt;%trial.a1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A1 trials in this block: &amp;lt;%trial.a1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A1 learned: &amp;lt;%values.a1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of A2 trials in this block: &amp;lt;%trial.a2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct A2 trials in this block: &amp;lt;%trial.a2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A2 learned: &amp;lt;%values.a2_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%values.b_trial_count%&amp;gt;&lt;br/&gt;^Number of B trials in this block where 'A' was the response: &amp;lt;%???%&amp;gt;&lt;br/&gt;^B desired response: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B1 trials in this block: &amp;lt;%trial.b1_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B1 trials in this block: &amp;lt;%trial.b1_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B1 learned: &amp;lt;%values.b1_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B2 trials in this block: &amp;lt;%trial.b2_trial.trialcount%&amp;gt;&lt;br/&gt;^Number correct B2 trials in this block: &amp;lt;%trial.b2_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B2 learned: &amp;lt;%values.b2_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block1&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;    if (values.num_a_trials_response_a &amp;gt;= 3) {&lt;br/&gt;        values.a1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a2_learned = true;&lt;br/&gt;    };&lt;br/&gt;    if (values.num_b_trials_response_b &amp;gt;= 3) {&lt;br/&gt;        values.b1_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b2_learned = true;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;/ trials=[1-18=noreplace(trial.a1_trial, trial.a1_trial, trial.a2_trial, trial.b1_trial, trial.b2_trial, trial.b2_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;    if (!values.a1_learned || !values.a2_learned || !values.b1_learned || !values.b2_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;        return block.learning_block;&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a1_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a1_correct = trial.a1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.a2_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_a2_correct = trial.a2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b1_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b1_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b1_correct = trial.b1_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b1_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b1_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B1")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b2_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;    values.b2_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;    values.num_b2_correct = trial.b2_trial.correctCount&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b2_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;    {&lt;br/&gt;        return trial.feedback_screen&lt;br/&gt;    }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b2_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B2")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a1_correct; 100=num_a2_correct; 200=num_b1_correct; 200=num_b2_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A1 Correct: &amp;lt;%values.num_a1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A2 Correct: &amp;lt;%values.num_a2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b1_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B1 Correct: &amp;lt;%values.num_b1_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 60%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b2_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B2 Correct: &amp;lt;%values.num_b2_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 70%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;    values.num_a1_correct values.num_a2_correct values.num_b1_correct values.num_b2_correct trial.a1_trial.percentcorrect trial.a2_trial.percentcorrect trial.b1_trial.percentcorrect trial.b2_trial.percentcorrect&lt;br/&gt;    values.a1_learned, values.a2_learned, values.b1_learned values.b2_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!</description><pubDate>Tue, 29 Oct 2024 15:16:57 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36583.aspx</link><description>&lt;blockquote data-id="36582" class="if-quote-wrapper" unselectable="on" data-guid="1729602293148" contenteditable="false" id="if_insertedNode_1729602292117"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36582" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36582" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36582" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/22/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36582"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36581" class="if-quote-wrapper" unselectable="on" data-guid="1729602293148" contenteditable="false" id="if_insertedNode_1729595943502"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36581" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36581" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36581" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/22/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36581"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36580" class="if-quote-wrapper" unselectable="on" data-guid="1729602293148" contenteditable="false" id="if_insertedNode_1729562877719"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36580" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36580" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36580" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36580"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36579" class="if-quote-wrapper" unselectable="on" data-guid="1729602293148" contenteditable="false" id="if_insertedNode_1729516538355"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36579" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36579" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36579" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36579"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36578" class="if-quote-wrapper" unselectable="on" data-guid="1729602293148" contenteditable="false" id="if_insertedNode_1729508069133"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36578" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36578" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36578" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36578"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729602293148" contenteditable="false" id="if_insertedNode_1729499660603"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729602293148" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;If one stimulus has been learned, say Stimulus A, I'd like to bring in another stimulus, say Stimulus C (i.e., trial.c_trial).&lt;br/&gt;Is there a wa to achieve this without disrupting the flow of the program?&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36578"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The same approach I already showed you applies. /skip the c trial as long as either the a and b trials have not been learned. Don't skip it as soon as either has been learned.&lt;a class="if-quote-goto quote-link" href="#" data-id="36579"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, that makes sense, thanks! &lt;span id="if_insertedNode_1729516574601"&gt;:)&lt;/span&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36580"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;I have another question.&lt;br/&gt;How would I make it so that there are separate blocks for each phase of learning?&lt;br/&gt;For example, if a participant learns Stimulus A to criterion in Block 1, then there will be a break, after which they will start Block 2 where they would only be presented with Stimulus B and C, until one of them is learned to criterion, etc.&lt;br/&gt;I'm not sure how this can be done using the / skip attribute approach. Or should a different approach be used to achieve this?&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36581"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Why would that require separate blocks? But regardless, the /skip approach is just as applicable as it was before.&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36582"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, will give that a go.&lt;br/&gt;Thanks again! </description><pubDate>Tue, 22 Oct 2024 13:05:30 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36582.aspx</link><description>&lt;blockquote data-id="36581" class="if-quote-wrapper" unselectable="on" data-guid="1729595944299" contenteditable="false" id="if_insertedNode_1729595943502"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36581" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36581" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36581" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/22/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36581"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36580" class="if-quote-wrapper" unselectable="on" data-guid="1729595944299" contenteditable="false" id="if_insertedNode_1729562877719"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36580" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36580" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36580" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36580"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36579" class="if-quote-wrapper" unselectable="on" data-guid="1729595944299" contenteditable="false" id="if_insertedNode_1729516538355"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36579" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36579" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36579" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36579"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36578" class="if-quote-wrapper" unselectable="on" data-guid="1729595944299" contenteditable="false" id="if_insertedNode_1729508069133"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36578" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36578" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36578" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36578"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729595944299" contenteditable="false" id="if_insertedNode_1729499660603"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729595944299" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;If one stimulus has been learned, say Stimulus A, I'd like to bring in another stimulus, say Stimulus C (i.e., trial.c_trial).&lt;br/&gt;Is there a wa to achieve this without disrupting the flow of the program?&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36578"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The same approach I already showed you applies. /skip the c trial as long as either the a and b trials have not been learned. Don't skip it as soon as either has been learned.&lt;a class="if-quote-goto quote-link" href="#" data-id="36579"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, that makes sense, thanks! &lt;span id="if_insertedNode_1729516574601"&gt;:)&lt;/span&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36580"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;I have another question.&lt;br/&gt;How would I make it so that there are separate blocks for each phase of learning?&lt;br/&gt;For example, if a participant learns Stimulus A to criterion in Block 1, then there will be a break, after which they will start Block 2 where they would only be presented with Stimulus B and C, until one of them is learned to criterion, etc.&lt;br/&gt;I'm not sure how this can be done using the / skip attribute approach. Or should a different approach be used to achieve this?&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36581"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Why would that require separate blocks? But regardless, the /skip approach is just as applicable as it was before.&lt;br/&gt;</description><pubDate>Tue, 22 Oct 2024 11:24:35 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36581.aspx</link><description>&lt;blockquote data-id="36580" class="if-quote-wrapper" unselectable="on" data-guid="1729562879078" contenteditable="false" id="if_insertedNode_1729562877719"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36580" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36580" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36580" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36580"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36579" class="if-quote-wrapper" unselectable="on" data-guid="1729562879078" contenteditable="false" id="if_insertedNode_1729516538355"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36579" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36579" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36579" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36579"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36578" class="if-quote-wrapper" unselectable="on" data-guid="1729562879078" contenteditable="false" id="if_insertedNode_1729508069133"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36578" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36578" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36578" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36578"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729562879078" contenteditable="false" id="if_insertedNode_1729499660603"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729562879078" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;If one stimulus has been learned, say Stimulus A, I'd like to bring in another stimulus, say Stimulus C (i.e., trial.c_trial).&lt;br/&gt;Is there a wa to achieve this without disrupting the flow of the program?&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36578"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The same approach I already showed you applies. /skip the c trial as long as either the a and b trials have not been learned. Don't skip it as soon as either has been learned.&lt;a class="if-quote-goto quote-link" href="#" data-id="36579"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, that makes sense, thanks! &lt;span id="if_insertedNode_1729516574601"&gt;:)&lt;/span&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36580"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;I have another question.&lt;br/&gt;How would I make it so that there are separate blocks for each phase of learning?&lt;br/&gt;For example, if a participant learns Stimulus A to criterion in Block 1, then there will be a break, after which they will start Block 2 where they would only be presented with Stimulus B and C, until one of them is learned to criterion, etc.&lt;br/&gt;I'm not sure how this can be done using the / skip attribute approach. Or should a different approach be used to achieve this?&lt;br/&gt;Thanks!</description><pubDate>Tue, 22 Oct 2024 02:13:19 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36580.aspx</link><description>&lt;blockquote data-id="36579" class="if-quote-wrapper" unselectable="on" data-guid="1729516539898" contenteditable="false" id="if_insertedNode_1729516538355"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36579" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36579" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36579" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36579"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36578" class="if-quote-wrapper" unselectable="on" data-guid="1729516539898" contenteditable="false" id="if_insertedNode_1729508069133"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36578" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36578" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36578" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36578"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729516539898" contenteditable="false" id="if_insertedNode_1729499660603"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729516539898" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;If one stimulus has been learned, say Stimulus A, I'd like to bring in another stimulus, say Stimulus C (i.e., trial.c_trial).&lt;br/&gt;Is there a wa to achieve this without disrupting the flow of the program?&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36578"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The same approach I already showed you applies. /skip the c trial as long as either the a and b trials have not been learned. Don't skip it as soon as either has been learned.&lt;a class="if-quote-goto quote-link" href="#" data-id="36579"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Ok, that makes sense, thanks! &lt;span id="if_insertedNode_1729516574601"&gt;:)&lt;/span&gt;</description><pubDate>Mon, 21 Oct 2024 13:16:28 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36579.aspx</link><description>&lt;blockquote data-id="36578" class="if-quote-wrapper" unselectable="on" data-guid="1729508070434" contenteditable="false" id="if_insertedNode_1729508069133"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36578" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36578" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36578" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36578"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729508070434" contenteditable="false" id="if_insertedNode_1729499660603"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729508070434" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;If one stimulus has been learned, say Stimulus A, I'd like to bring in another stimulus, say Stimulus C (i.e., trial.c_trial).&lt;br/&gt;Is there a wa to achieve this without disrupting the flow of the program?&lt;br/&gt;&lt;br/&gt;Thanks!&lt;a class="if-quote-goto quote-link" href="#" data-id="36578"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The same approach I already showed you applies. /skip the c trial as long as either the a and b trials have not been learned. Don't skip it as soon as either has been learned.</description><pubDate>Mon, 21 Oct 2024 10:57:05 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36578.aspx</link><description>&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729499661802" contenteditable="false" id="if_insertedNode_1729499660603"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729499661802" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;If one stimulus has been learned, say Stimulus A, I'd like to bring in another stimulus, say Stimulus C (i.e., trial.c_trial).&lt;br/&gt;Is there a wa to achieve this without disrupting the flow of the program?&lt;br/&gt;&lt;br/&gt;Thanks!</description><pubDate>Mon, 21 Oct 2024 08:40:06 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36577.aspx</link><description>&lt;blockquote data-id="36576" class="if-quote-wrapper" unselectable="on" data-guid="1729485838280" contenteditable="false" id="if_insertedNode_1729485837446"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36576" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36576" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36576" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/21/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36576"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729485838280" contenteditable="false" id="if_insertedNode_1729483271000"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729485838280" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;Thanks for the help, much appreciated.&lt;br/&gt;There seems to be an issue that when Stimulus B is learned to criterion, but not A, it goes to the Stimulus A branch block, not B.&lt;br/&gt;Is there something wrong with the logic of the code here or is it something else:&lt;br/&gt;[code]&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-10=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.correctCount &amp;gt;= 5) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.correctCount &amp;gt;= 5) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36576"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;Please ignore my previous reply, I managed to figure it out.&lt;br/&gt;Thanks again! &lt;br/&gt;</description><pubDate>Mon, 21 Oct 2024 04:45:24 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36576.aspx</link><description>&lt;blockquote data-id="36575" class="if-quote-wrapper" unselectable="on" data-guid="1729483272144" contenteditable="false" id="if_insertedNode_1729483271000"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36575" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36575" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36575" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36575"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729483272144" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36575"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Hi Dave,&lt;br/&gt;Thanks for the help, much appreciated.&lt;br/&gt;There seems to be an issue that when Stimulus B is learned to criterion, but not A, it goes to the Stimulus A branch block, not B.&lt;br/&gt;Is there something wrong with the logic of the code here or is it something else:&lt;br/&gt;[code]&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-10=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.correctCount &amp;gt;= 5) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.correctCount &amp;gt;= 5) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thanks!&lt;br/&gt;&lt;br/&gt;</description><pubDate>Mon, 21 Oct 2024 04:19:54 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36575.aspx</link><description>&lt;blockquote data-id="36574" class="if-quote-wrapper" unselectable="on" data-guid="1729436926325" contenteditable="false" id="if_insertedNode_1729436925305"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36574" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36574" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36574" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 10/20/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36574"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36574"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&amp;gt; 1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;There is no such thing as &amp;lt;%num_a_correct%&amp;gt; or &amp;lt;%num_b_correct%&amp;gt;.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;It's &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_a_correct%&amp;gt; and &amp;lt;%&lt;strong&gt;values.&lt;/strong&gt;num_b_correct%&amp;gt; respectively.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;&amp;gt; 2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;Use /skip attributes.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.learning_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ a_learned = false&lt;br/&gt;/ b_learned = false&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page blocksummary&amp;gt;&lt;br/&gt;^Number of A trials in this block: &amp;lt;%trial.a_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of A trials in this block: &amp;lt;%trial.a_trial.percentcorrect%&amp;gt;&lt;br/&gt;^A learned: &amp;lt;%values.a_learned%&amp;gt;&lt;br/&gt;&lt;br/&gt;^Number of B trials in this block: &amp;lt;%trial.b_trial.trialcount%&amp;gt;&lt;br/&gt;^Percent correct of B trials in this block: &amp;lt;%trial.b_trial.percentcorrect%&amp;gt;&lt;br/&gt;^B learned: &amp;lt;%values.b_learned%&amp;gt;&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block learning_block&amp;gt;&lt;br/&gt;/ postinstructions = (page.blocksummary)&lt;br/&gt;/ onblockend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_a_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.num_b_correct &amp;gt;= 60) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ trials=[1-20=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!values.a_learned || !values.b_learned) { // if either hasn't been learned, run another learning block&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return block.learning_block;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned;&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ skip = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.b_learned;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%values.num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%values.num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem stimulusitem response latency correct&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct values.num_b_correct trial.a_trial.percentcorrect trial.b_trial.percentcorrect&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.a_learned, values.b_learned)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;[/code]&lt;br/&gt;&lt;br/&gt;</description><pubDate>Sun, 20 Oct 2024 15:35:08 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36574.aspx</link><description>Hi Dave,&lt;br/&gt;&lt;br/&gt;Basically, if participants press the correct key to criterion (60% accuracy) at the end of one block, I want to start a different block where the first stimulus that has been learned to criterion is no longer there, but the stimuli remain, until they are also learned to criterion.&lt;br/&gt;&lt;br/&gt;The issues I can't seem to resolve, and am hoping you can help with, are as follows:&lt;br/&gt;&lt;br/&gt;1. The percentage of time that a participant presses the correct key for each stimulus is not displayed correctly on the feedback screen. It should get the value from the percentCorrect property, but that doesn't seem to be working.&lt;br/&gt;&lt;br/&gt;2. How can I make it so that when one stimulus has been learned to criterion, the others remain until they are all learned?&lt;br/&gt;&lt;br/&gt;3. Is there a better way to achieve what I'm trying to do? For example, is there a criterion function in Inquisit?&lt;br/&gt;&lt;br/&gt;Below is the code that I have been working with.&lt;br/&gt;&lt;br/&gt;[code]&amp;lt;values&amp;gt;&lt;br/&gt;/ num_a_correct = 0;&lt;br/&gt;/ num_b_correct = 0;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt&amp;gt;&lt;br/&gt;/ blocks = [1=block.start_block]&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block start_block&amp;gt;&lt;br/&gt;/ trials=[1-5=noreplace(trial.a_trial, trial.b_trial)]&lt;br/&gt;/ branch=[if (trial.a_trial.percentCorrect &amp;gt;= 60) block.branch_block_a]&lt;br/&gt;/ branch=[if (trial.b_trial.percentCorrect &amp;gt;= 60) block.branch_block_b]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial a_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_a_correct = trial.a_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, a_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("a")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text a_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus A")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial b_trial&amp;gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.num_b_correct = trial.b_trial.percentCorrect&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, b_trial_stimulus]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = ("a", "b")&lt;br/&gt;/ correctresponse = ("b")&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.feedback_screen&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text b_trial_stimulus&amp;gt;&lt;br/&gt;/ items = ("Stimulus B")&lt;br/&gt;/ hposition = 50%&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial feedback_screen&amp;gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen; 50=feedback_screen; 100=num_a_correct; 150=num_b_correct]&lt;br/&gt;/ timeout = 1500&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text feedback_screen&amp;gt;&lt;br/&gt;/ items = ("Feedback Screen")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 30%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_a_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus A Correct: &amp;lt;%num_a_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 40%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text num_b_correct&amp;gt;&lt;br/&gt;/ items = ("Percentage Stimulus B Correct: &amp;lt;%num_b_correct%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = blue&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_a&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_a&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_a&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block A *****&lt;br/&gt;~n&lt;br/&gt;Stimulus A has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block branch_block_b&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/ trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=noreplace(branch_block_trial_a)&lt;br/&gt;]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial branch_block_trial_b&amp;gt;&lt;br/&gt;/ stimulusframes = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=clearscreen, text.branch_block_text_a&lt;br/&gt;]&lt;br/&gt;/ validresponse = (" ")&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text branch_block_text_b&amp;gt;&lt;br/&gt;/ items = ("***** This is the Branch Block B *****&lt;br/&gt;~n&lt;br/&gt;Stimulus B has been learned to criterion")&lt;br/&gt;/ fontstyle = ("Courier", 18pt, true)&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (80%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;&amp;lt;/text&amp;gt;[/code]&lt;br/&gt;&lt;br/&gt;Thank you!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description><pubDate>Sun, 20 Oct 2024 07:52:25 GMT</pubDate><dc:creator>raven</dc:creator></item><item><title>RE: Learning to criterion</title><link>https://forums.millisecond.com/Topic36555.aspx</link><description>&lt;blockquote data-id="36554" class="if-quote-wrapper" unselectable="on" data-guid="1727177297512" contenteditable="false" id="if_insertedNode_1727177297286"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="36554" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="36554" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="36554" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;raven - 9/24/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-36554"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi Dave,&lt;br/&gt;&lt;br/&gt;I'm adapting a task I've already created to include the ability to drop any stimuli that have been learnt to a specific criterion.&lt;br/&gt;What is the best way to go about this? After looking on the forums and language reference, I can't seem to find any reference to criterion elements.&lt;br/&gt;&lt;br/&gt;Thanks in advance!&lt;a id="ctl00_ctlContentPlaceHolder_ctl00_ctl00_ctlQuickPost_ctl00_ctlPanelBar_butSubmit" class="i-btn i-btn-2x i-btn-primary" href="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&amp;quot;ctl00$ctlContentPlaceHolder$ctl00$ctl00$ctlQuickPost$ctl00$ctlPanelBar$butSubmit&amp;quot;, &amp;quot;&amp;quot;, true, &amp;quot;ctl00_ctlContentPlaceHolder_ctl00_ctl00_ctlQuickPost&amp;quot;, &amp;quot;&amp;quot;, false, true))"&gt;&lt;br/&gt;&lt;/a&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="36554"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Based on your description I have no idea what you want to do. I'm also unclear what you mean by "criterion elements" -- there is no such thing.&lt;br/&gt;&lt;br/&gt;Provide a detailed explanation of what you aim to do, along with relevant example code.</description><pubDate>Tue, 24 Sep 2024 11:29:19 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>