Функция рандомизации jsPsych, повторяющая финальное испытание в цикле - PullRequest
1 голос
/ 05 апреля 2020

Я использую для l oop для создания тестовых испытаний, в которых каждый тестовый элемент представлен один раз, а последний элемент всегда представлен дважды. L oop предназначен для показа каждого размера камня один раз в случайном порядке. , Я пробовал различные функции рандомизации (shuffle, shuffleNoRepeats, sampleWithoutReplacement, repeat), но ни одна из них не справилась. Я унаследовал этот код и адаптирую его, а не пишу сам. Я также заметил, что аргументы данных не записывают фактические размеры представленных элементов, а записывают их в порядке возрастания.

Возможно, есть проблема с l oop, но я не смог определить, в чем проблема, поэтому был бы очень признателен, если бы кто-нибудь взглянул и увидел, могут ли они определить, что не так.

Вот мой код:

var rocksize = [24, 34, 43, 53, 62, 71, 90];

var rateqorder = jsPsych.randomization.repeat([0, 1, 2, 3, 4, 5, 6], 1);
// var rateqorder = jsPsych.randomization.shuffleNoRepeats([0, 1, 2, 3, 4, 5, 6]); // A few different things I've tried
    console.log(rocksize)
    console.log(rateqorder)


    for (var i = 0; i < rateqorder.length; i++) {
        var rate = {
            type: "html-button-response",
            timing_post_trial: 500,
            stimulus:
                '<div class="ratecontainer">' +
                '<div class="head"></div>' +
                '<div class="head"></div>' +
                '<div class="head"></div>' +
                '<div class="mid"></div>' +
                '<div class="center">' +
                '<div class="raterock">' +
                '<span class="ratedot" style="height:' + rocksize[rateqorder[i]] + 'px; width:' + rocksize[rateqorder[i]] + 'px;"></span>' +
                '</div></div>' +
                '<div class="mid"></div>' +
                '<div class="foot"></div>' +
                '<div class="foot"></div>' +
                '<div class="foot"></div>' +
                '</div>' +
                '<span><p>Based on what you have learned so far, how likely is it that a Sodor sphere of this size has plaxium coating?<br><br><br></p></span>',
            choices: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
            prompt: "<span style='font-size:15px'>[Very Unlikely]" + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                "[Very Likely]</span>",
            data: {
                trial: rateqorder[i],
                rocksize: rocksize[i] 
            }
        }
        timeline.push(rate)


        var wait = {
            type: "html-keyboard-response",
            stimulus: " ",
            choices: jsPsych.NO_KEYS,
            trial_duration: 1000,
        }
        timeline.push(wait)

    }
    timeline.push(rate) 

Как я могу остановить повторение финального испытания?

...