const jsPsych = initJsPsych(); var chosBandit = [] var roundInfoInit = [[0, 1], [1, 0], [2, 3], [3, 2]] var roundInfo = []; function push(fromArray, toArray) { for(let i = 0, len = fromArray.length; i < len; i++) { toArray.push(fromArray[i]); } return toArray; } for (let t = 0; t < 46; t++){ push(roundInfoInit, roundInfo) } var randRoundInfo = jsPsych.randomization.shuffle(roundInfo); console.log(randRoundInfo) var trialInfo = []; var condition = []; var initCondition = [0, 1, 2, 3]; var currentCondition = []; var actualRewardLeft = 0; var actualRewardRight = 0; for (let i = 0; i < 46; i++){ var randCondition = jsPsych.randomization.shuffle(initCondition); push(randCondition, condition); } condition.pop() condition.pop() var consensusCond = [] var initConsCond = [1,0,0,0,0,0,0,0,0,0] for (let i = 0;i<18;i++){ //NEW VERSION var randConsCond = jsPsych.randomization.shuffle(initConsCond) push(randConsCond,consensusCond) } var conditionZip = condition.map(function(e, i) { // zips condition and consensusCond([0] is condition, [1] is whether one of prev gambs agrees (10%) return [e, consensusCond[i]]; }); var probeCondInit = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //NEW VERSION 180 + 36(probe) = 216 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0] var probeCondGroupInit = [1,0,0,0,0,0] var randProbeCondition = [] for (let i = 0;i<36;i++){ //NEW VERSION var probeCondInit = jsPsych.randomization.shuffle(probeCondGroupInit) push(probeCondInit,randProbeCondition) } var numTrials = 0 var numTrialsAll = 0 var randPlayerProbe = [] var playerProbeInit = [0, 1, 2] //for (let i = 0;i<42;i++) { for (let i = 0;i<76;i++) { //NEW VERSION var randPlayerProbeInit = jsPsych.randomization.shuffle(playerProbeInit); push(randPlayerProbeInit, randPlayerProbe) } var screen_height = window.screen.height; var screen_width = window.screen.width; var imagesInit = ['star', 'diamond', 'gear', 'moon'] console.log('imagesInit', imagesInit) var images = ["../static/images/star.png", "../static/images/diamond.png", "../static/images/gear.png", "../static/images/moon.png"]; // 1 is a nonMaj trial, 2 is a flip trial var gamblersInit = [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] var gamblers = jsPsych.randomization.shuffle(gamblersInit) console.log(gamblers) var gamblersMaj = [] var gamblersNonMaj = [] var gamblersMajChoices = [[18, 2], [16, 4], [14, 6]] var gamblersNonMajChoices = [[12, 8], [10, 10]] for (let i = 0;i<62;i++) { var gamblersMajInit = jsPsych.randomization.shuffle(gamblersMajChoices); push(gamblersMajInit, gamblersMaj) } for (let i = 0;i<7;i++) { var gamblersNonMajInit = jsPsych.randomization.shuffle(gamblersNonMajChoices); push(gamblersNonMajInit, gamblersNonMaj) } // Provide participant with instructions /* Stimulus HTML template for the choice screen: USE TABLE FOR TRIAL INFO*/ /*var trialStimTemplate = "
" + "" + "
" + " " + " " + " " + " " + " " + " " + "" + "" + "

" + "

" + "

" + "

" + "blank " + "
"*/ var cellColorsInit = ["IndianRed", "SkyBlue", "PaleGreen", "LemonChiffon"] var cellColors = jsPsych.randomization.shuffle(cellColorsInit); console.log(cellColors) var fixationPre = { type: 'html-keyboard-response', stimulus: '
+
', choices: jsPsych.NO_KEYS, trial_duration: 500, }; var currImgLeft = [] var currImgRight = [] var currentRound = 0 var gamblersLeftNum var gamblersRightNum // eslint-disable-next-line no-unused-vars function setDisplay(select) { function getRandomInt(max) { return Math.floor(Math.random() * max); } //add probeMode changes var gamblerRect = document.getElementById("gamblerRect") var rewardRectLeft = document.getElementById("rewardRectLeft") var rewardRectRight = document.getElementById("rewardRectRight") var leftCell = document.getElementById('imgLeft') var rightCell = document.getElementById('imgRight') var leftPrompt = document.getElementById('left_selection_prompt') var rightPrompt = document.getElementById('right_selection_prompt') var leftReward = document.getElementById('left_reward_text') var rightReward = document.getElementById('right_reward_text') const avatar = document.getElementById("avatar"); var noFeedback = document.getElementById("nofeedback"); var gamblersLeft = document.getElementById("gamblersLeft") var gamblersRight = document.getElementById("gamblersRight") noFeedback.style.top = '50%' noFeedback.style.left = '40%' var gamblersCurrent var gamblersMajCurrent var gamblersNonMajCurrent function setGamblerImage(currentCondition, chosBandit, currImgLeft, currImgRight, randPlayer, gamblers, gamblersCurrent, gamblersMajCurrent, gamblersNonMajCurrent, gamblersCurrentShift) { if (currentCondition[0] === 0) { // condition 1: win and consensus console.log('hit condition 1') if (chosBandit === 37) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][0] //gamblersRight.src = gamblersNonMaj[0][1] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][1] //gamblersRight.src = gamblersNonMaj[0][0] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } console.log('gamblersLeft src', gamblersLeft.src) } else if (currentCondition[0] === 1) { // condition 2: lose and consensus console.log('hit condition 2') if (chosBandit === 37) { if (gamblersCurrentShift === 0) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][1] //gamblersRight.src = gamblersNonMaj[0][0] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][0] //gamblersRight.src = gamblersNonMaj[0][1] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } console.log('gamblersLeft src', gamblersLeft.src) } else if (currentCondition[0] === 2) { // condition 3: win and dissent console.log('hit condition 3') if (chosBandit === 37) { if (gamblersCurrentShift === 0) { //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][0] //gamblersRight.src = gamblersNonMaj[0][1] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][1] //gamblersRight.src = gamblersNonMaj[0][0] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } console.log('gamblersLeft src', gamblersLeft.src) } else if (currentCondition[0] === 3) { // condition 4: lose and dissent console.log('hit condition 4') if (chosBandit === 37) { if (gamblersCurrentShift === 0) { //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][0] //gamblersRight.src = gamblersNonMaj[0][1] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { //gamblersLeft.src = gamblersMaj[0][1] //gamblersRight.src = gamblersMaj[0][0] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[1] + ".png" } else if (gamblersCurrentShift === 1) { //gamblersLeft.src = gamblersNonMaj[0][1] //gamblersRight.src = gamblersNonMaj[0][0] gamblersNonMajCurrent = gamblersNonMaj[0] console.log(gamblersNonMajCurrent) gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] gamblersLeft.src = "../static/images/" + gamblersNonMajCurrent[0] + ".png" gamblersRight.src = "../static/images/" + gamblersNonMajCurrent[1] + ".png" } else if (gamblersCurrentShift === 2) { //gamblersLeft.src = gamblersMaj[0][0] //gamblersRight.src = gamblersMaj[0][1] gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] gamblersLeft.src = "../static/images/" + gamblersMajCurrent[1] + ".png" gamblersRight.src = "../static/images/" + gamblersMajCurrent[0] + ".png" } console.log('gamblersLeftNum', gamblersLeftNum) } console.log('gamblersLeft src', gamblersLeft.src) } } if (currentProbeCond === 0) { currImgLeft = currentRound[0] currImgRight = currentRound[1] /*leftCell.src = images[currImgLeft]; rightCell.src = images[currImgRight]; leftCell.style.backgroundColor = cellColors[currentCondition[0]] rightCell.style.backgroundColor = cellColors[currentCondition[0]]*/ leftCell.style.position = "absolute" rightCell.style.position = "absolute" leftCell.src = '../static/images/' + cellColors[currentCondition[0]] + '_' + imagesInit[currImgLeft] + '.png' rightCell.src = '../static/images/' + cellColors[currentCondition[0]] + '_' + imagesInit[currImgRight] + '.png' } else if (currentProbeCond === 1) { currImgLeft = currentRound[0] currImgRight = currentRound[1] //choose which type of probe condition to run if (randPlayerTrial === 0) { // correct + consensus or correct + dissent (cond 1, 3) / diff colors but same icons //leftCell.style.backgroundColor = cellColors[trialZeroCond[0]] //rightCell.style.backgroundColor = cellColors[trialZeroCond[1]] console.log('randProbeImageArray', randProbeImageArray) randProbeImage = randProbeImageArray[0] //leftCell.src = images[randProbeImage] //rightCell.src = images[randProbeImage] leftCell.src = '../static/images/' + cellColors[trialZeroCond[0]] + '_' + imagesInit[randProbeImage] + '.png' rightCell.src = '../static/images/' + cellColors[trialZeroCond[1]] + '_' + imagesInit[randProbeImage] + '.png' } else if (randPlayerTrial === 1) { // incorrect + consensus or incorrect + dissent (cond 2, 4) / diff colors, same icons //leftCell.style.backgroundColor = cellColors[trialOneCond[0]] //rightCell.style.backgroundColor = cellColors[trialOneCond[1]] randProbeImage = randProbeImageArray[0] // remove this, just put randProbeImageArray in 949 //leftCell.src = images[randProbeImage] //rightCell.src = images[randProbeImage] leftCell.src = '../static/images/' + cellColors[trialOneCond[0]] + '_' + imagesInit[randProbeImage] + '.png' rightCell.src = '../static/images/' + cellColors[trialOneCond[1]] + '_' + imagesInit[randProbeImage] + '.png' } else if (randPlayerTrial === 2) { // high reward vs low (random color, diff icons) //leftCell.style.backgroundColor = cellColors[condShuffle[0]] //rightCell.style.backgroundColor = cellColors[condShuffle[0]] //user.style.backgroundColor = cellColors[condShuffle[0]] //leftCell.src = images[trialTwoChoicesLeft] //rightCell.src = images[trialTwoChoicesRight] leftCell.src = '../static/images/' + cellColors[condShuffle[0]] + '_' + imagesInit[trialTwoChoicesLeft] + '.png' rightCell.src = '../static/images/' + cellColors[condShuffle[0]] + '_' + imagesInit[trialTwoChoicesRight] + '.png' } } if (select === 0) { avatar.style.display = "block" //imgLeft.style.display = "block" //imgRight.style.display = "block" leftCell.style.display = "block" rightCell.style.display = "block" } else if (select === 1) { avatar.style.display = "block" //imgLeft.style.display = "block" //imgRight.style.display = "block" leftCell.style.display = "block" rightCell.style.display = "block" console.log('gamblerLeft.src 1', gamblersLeft.src) console.log('gamblersCurrent', gamblersCurrentShift) leftPrompt.innerHTML = '' rightPrompt.innerHTML = '' $(document).ready(function (e) { if (chosBandit === 37) { width = "-=" + 275 } else if (chosBandit === 39) { width = "+=" + 275 } //height = "-=" + 26 height = "-=" + .02 $("#avatar").animate({ left: width, top: height }, 1000, function () { // Animation complete. }); }); if (chosBandit === 37) { leftCell.style.outlineColor = "black"; leftCell.style.outlineStyle = "solid"; leftCell.style.outlineOffset = "-5px" leftCell.style.outlineWidth = "10px"; rightCell.style.outlineWidth = "3px"; } else if (chosBandit === 39) { rightCell.style.outlineColor = "black"; rightCell.style.outlineStyle = "solid"; rightCell.style.outlineOffset = "-5px" leftCell.style.outlineWidth = "3px"; rightCell.style.outlineWidth = "10px"; } // for 2 and 3, find out where the avatar ends up after the animation, then set it to that location (if loop chosBandit = 37 or 39) } else if (select === 2) { /*avatar.style.display = "block" imgLeft.style.display = "block" imgRight.style.display = "block"*/ console.log('gamblerLeft.src 2', gamblersLeft.src) console.log('gamblersCurrent', gamblersCurrentShift) leftPrompt.innerHTML = '' rightPrompt.innerHTML = '' if (currentProbeCond === 1) { noFeedback.style.display = "block" //avatar.style.display = "none" //imgLeft.style.display = "none" //imgRight.style.display = "none" //leftCell.style.display = "none" //rightCell.style.display = "none" //bar.style.display = "none" gamblersLeft.style.display = "none" gamblersRight.style.display = "none" } else if (currentProbeCond === 0) { //noFeedback.style.display = "none" avatar.style.display = "block" //imgLeft.style.display = "block" //imgRight.style.display = "block" leftCell.style.display = "block" rightCell.style.display = "block" //bar.style.display = "block" gamblersLeft.style.display = "block" gamblersRight.style.display = "block" } if (chosBandit === 37) { //avatar.style.top = '200px' //avatar.style.left = '375px' console.log(avatar.style.top) console.log(avatar.style.left) avatar.style.top = '21.98%' avatar.style.left = '26.3%' console.log(avatar.style.top) console.log(avatar.style.left) leftCell.style.outlineColor = "black"; leftCell.style.outlineStyle = "solid"; leftCell.style.outlineOffset = "-5px"; leftCell.style.outlineWidth = "10px"; rightCell.style.outlineWidth = "3px"; } else if (chosBandit === 39) { avatar.style.top = '21.98%' avatar.style.left = '64.7%' rightCell.style.outlineColor = "black"; rightCell.style.outlineStyle = "solid"; rightCell.style.outlineOffset = "-5px"; leftCell.style.outlineWidth = "3px"; rightCell.style.outlineWidth = "10px"; } setGamblerImage(currentCondition, chosBandit, currImgLeft, currImgRight, randPlayer, gamblers, gamblersCurrent, gamblersMajCurrent, gamblersNonMajCurrent, gamblersCurrentShift) } else if (select === 3) { console.log('gamblerLeft.src 3', gamblersLeft.src) console.log('gamblersCurrent', gamblersCurrentShift) if (currentProbeCond === 1) { noFeedback.style.display = "block" gamblersLeft.style.display = "none" gamblersRight.style.display = "none" leftPrompt.innerHTML = '' rightPrompt.innerHTML = '' } else if (currentProbeCond === 0) { //noFeedback.style.display = "none" avatar.style.display = "block" //imgLeft.style.display = "block" //imgRight.style.display = "block" leftCell.style.display = "block" rightCell.style.display = "block" //bar.style.display = "block" gamblersLeft.style.display = "block" gamblersRight.style.display = "block" leftReward.innerHTML = '$' + rewVal[0] rightReward.innerHTML = '$' + rewVal[1] leftPrompt.innerHTML = '' rightPrompt.innerHTML = '' } if (chosBandit === 37) { avatar.style.top = '21.98%' avatar.style.left = '26.3%' console.log(avatar.style.top) console.log(avatar.style.left) leftCell.style.outlineColor = "black"; leftCell.style.outlineStyle = "solid"; leftCell.style.outlineOffset = "-5px" leftCell.style.outlineWidth = "10px"; rightCell.style.outlineWidth = "3px"; } else if (chosBandit === 39) { avatar.style.top = '21.98%' avatar.style.left = '64.7%' rightCell.style.outlineColor = "black"; rightCell.style.outlineStyle = "solid"; rightCell.style.outlineOffset = "-5px" leftCell.style.outlineWidth = "3px"; rightCell.style.outlineWidth = "10px"; } setGamblerImage(currentCondition, chosBandit, currImgLeft, currImgRight, randPlayer, gamblers, gamblersCurrent, gamblersMajCurrent, gamblersNonMajCurrent, gamblersCurrentShift) } } // returns a gaussian random function with the given mean and stdev. function gaussian(mean, std) { var y2; var use_last = false; var y1; if (use_last) { y1 = y2; use_last = false; } else { var x1, x2, w; do { x1 = 2.0 * Math.random() - 1.0; x2 = 2.0 * Math.random() - 1.0; w = x1 * x1 + x2 * x2; } while (w >= 1.0); w = Math.sqrt((-2.0 * Math.log(w)) / w); y1 = x1 * w; y2 = x2 * w; use_last = true; } var retval = mean + std * y1; retval = retval.toFixed(2) if (retval > 0) return retval; return -retval; } var rewardRight = 0 var rewardLeft = 0 function determineReward() { function myRew(event) { var x = event.key; if (x === "ArrowLeft") { chosBandit = 37 } else if (x === "ArrowRight") { chosBandit = 39 } return chosBandit } myRew(event) if (currentRound[0] === 0 || currentRound[0] === 1) { //NEW VERSION rewardLeft = gaussian(5.0, 0.2); rewardRight = gaussian(5.0, 0.2); } else if (currentRound[0] === 2 || currentRound[0] === 3) { rewardLeft = gaussian(1.0, 0.2); rewardRight = gaussian(1.0, 0.2); } var difference = Math.abs(rewardLeft - rewardRight) difference = difference.toFixed(2) if (currentCondition[0] === 0) { // condition 1: win and consensus new version if (chosBandit === 37) { if (+rewardRight > +rewardLeft) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } else if (+rewardRight < +rewardLeft) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } //actualRewardLeft = rewardLeft //actualRewardRight = 0 if (difference < 2.0){ actualRewardLeft = parseFloat(actualRewardLeft) + parseFloat(2.0) actualRewardLeft = actualRewardLeft.toFixed(2) } } else if (chosBandit === 39) { if (+rewardLeft > +rewardRight) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } else if (+rewardLeft < +rewardRight) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } //actualRewardLeft = 0 //actualRewardRight = rewardRight if (difference < 2.0){ actualRewardRight = parseFloat(actualRewardRight) + parseFloat(2.0) actualRewardRight = actualRewardRight.toFixed(2) } } } else if (currentCondition[0] === 1) { // condition 2: lose and consensus if (chosBandit === 37) { if (+rewardLeft > +rewardRight) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } else if (+rewardLeft < +rewardRight) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } //actualRewardLeft = 0 //actualRewardRight = rewardRight if (difference < 2.0){ actualRewardRight = parseFloat(actualRewardRight) + parseFloat(2.0) actualRewardRight = actualRewardRight.toFixed(2) } } else if (chosBandit === 39) { if (+rewardRight > +rewardLeft) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } else if (+rewardRight < +rewardLeft) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } //actualRewardLeft = rewardLeft //actualRewardRight = 0 if (difference < 2.0){ actualRewardLeft = parseFloat(actualRewardLeft) + parseFloat(2.0) actualRewardLeft = actualRewardLeft.toFixed(2) } } } else if (currentCondition[0] === 2) {// condition 3: win and dissent if (chosBandit === 37) { if (+rewardRight > +rewardLeft) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } else if (+rewardRight < +rewardLeft) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } //actualRewardLeft = rewardLeft //actualRewardRight = 0 if (difference < 2.0){ actualRewardLeft = parseFloat(actualRewardLeft) + parseFloat(2.0) actualRewardLeft = actualRewardLeft.toFixed(2) } } else if (chosBandit === 39) { if (+rewardLeft > +rewardRight) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } else if (+rewardLeft < +rewardRight) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } //actualRewardLeft = 0 //actualRewardRight = rewardRight if (difference < 2.0){ actualRewardRight = parseFloat(actualRewardRight) + parseFloat(2.0) actualRewardRight = actualRewardRight.toFixed(2) } } } else if (currentCondition[0] === 3) {// condition 4: lose and dissent if (chosBandit === 37) { if (+rewardRight > +rewardLeft) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } else if (+rewardRight < +rewardLeft) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } //actualRewardLeft = 0 //actualRewardRight = rewardRight if (difference < 2.0){ actualRewardRight = parseFloat(actualRewardRight) + parseFloat(2.0) actualRewardRight = actualRewardRight.toFixed(2) } } else if (chosBandit === 39) { if (+rewardRight > +rewardLeft) { actualRewardLeft = rewardRight actualRewardRight = rewardLeft } else if (+rewardRight < +rewardLeft) { actualRewardLeft = rewardLeft actualRewardRight = rewardRight } //actualRewardLeft = rewardLeft //actualRewardRight = 0 if (difference < 2.0){ actualRewardLeft = parseFloat(actualRewardLeft) + parseFloat(2.0) actualRewardLeft = actualRewardLeft.toFixed(2) } } } return [actualRewardLeft, actualRewardRight]; } var blank = { type: 'html-keyboard-response', stimulus: '
', choices: jsPsych.NO_KEYS, trial_duration: 1000, }; var currentProbeCond = [] var currentRoundProbe var currentConditionProbe var currentConditionProbeSave var randPlayerTrial = 0 var trialZeroCond = 0 var trialOneCond = 0 var condShuffle = 0 //var trialTwoChoicesHigh = 0 //var trialTwoChoicesLow = 0 var randPlayer = 0 var leftSelection = 0 var randProbeImageArrayInit = [0, 1, 2, 3] var randProbeImageArray var randProbeImage var trialZeroChoices = [0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2]; var trialOneChoices = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3]; var trialTwoChoices = [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1] var trialTwoChoicesHighLeft = [0, 2, 0, 2, 0, 3, 0, 3, 1, 2, 1, 2, 1, 3, 1, 3] // 8 trials var trialTwoChoicesLowLeft = [2, 0, 2, 0, 3, 0, 3, 0, 2, 1, 2, 1, 3, 1, 3, 1] // 8 trials var trialTwoDecide var trialTwoChoicesLeft var trialTwoChoicesRight var trialZeroCondInit var trialOneCondInit var gamblersCurrentShift /* var nxtRound = { type: 'html-keyboard-response', stimulus: '
', choices: jsPsych.NO_KEYS, trial_duration: 0, on_finish: function() { console.log('nxtRound', numTrials) randPlayer = Math.floor(Math.random() * 3) // gets random number for 1 of the players if (randProbeCondition[0] === 1) {//changed from [0] to .shift() randPlayerTrial = randPlayerProbe.shift() currentProbeCond = randProbeCondition[0] //currentRound = [0, 0] // icon id # //currentCondition = [0, 0] // [0] is condition, [1] is whether there is 1 gambler who chooses differently probeMode = 1 if (randPlayerTrial === 0) { // correct + consensus or correct + dissent (cond 1, 3) / diff colors but same icons //var trialZeroChoices = [0, 2] randProbeImageArray = jsPsych.randomization.shuffle(randProbeImageArrayInit) //trialZeroCond = jsPsych.randomization.shuffle(trialZeroChoices) trialZeroCondInit = trialZeroChoices.shift() if (trialZeroCondInit === 0){ trialZeroCond = [0, 2] } else if (trialZeroCondInit === 2){ trialZeroCond = [2, 0] } //currentRound = randProbeImage //currentCondition = trialZeroCond } else if (randPlayerTrial === 1) { // incorrect + consensus or incorrect + dissent (cond 2, 4) / diff colors, same icons //var trialOneChoices = [1, 3] randProbeImageArray = jsPsych.randomization.shuffle(randProbeImageArrayInit) //trialOneCond = jsPsych.randomization.shuffle(trialOneChoices) trialOneCondInit = trialOneChoices.shift() if (trialOneCondInit === 1){ trialOneCond = [1, 3] } else if (trialOneCondInit === 3){ trialOneCond = [3, 1] } //currentRound = randProbeImage //currentCondition = trialOneCond } else if (randPlayerTrial === 2) { // high reward vs low (random color, diff icons) var condArray = [0, 1, 2, 3] condShuffle = jsPsych.randomization.shuffle(condArray) trialTwoDecide = trialTwoChoices.shift() if (trialTwoDecide === 0){ //if this probe 2 trial is high icon on left trialTwoChoicesLeft = trialTwoChoicesHighLeft.shift() trialTwoChoicesRight = trialTwoChoicesHighLeft.shift() //left is high choice //right is low choice } else if (trialTwoDecide === 1){ trialTwoChoicesLeft = trialTwoChoicesLowLeft.shift() trialTwoChoicesRight = trialTwoChoicesLowLeft.shift() //right is high choice //left is low choice } //currentRound = [trialTwoChoicesHigh[0], trialTwoChoicesLow[0]] //currentCondition = condShuffle[0] } } else if (randProbeCondition[0] === 0) { currentRound = randRoundInfo.shift(); gamblersCurrentShift = gamblers.shift() if (gamblersCurrentShift === 0) { gamblersMaj.shift() } else if (gamblersCurrentShift === 1) { gamblersNonMaj.shift() } else if (gamblersCurrentShift === 2) { gamblersMaj.shift() } //currentCondition = conditionZip.shift() currentCondition = conditionZip[numTrials] currentProbeCond = randProbeCondition[0] probeMode = 0 } //randProbeCondition.shift() } }; */ function nxtRound(){ console.log('nxtRound', numTrials) randPlayer = Math.floor(Math.random() * 3) // gets random number for 1 of the players if (randProbeCondition[0] === 1) {//changed from [0] to .shift() randPlayerTrial = randPlayerProbe.shift() currentProbeCond = randProbeCondition[0] //currentRound = [0, 0] // icon id # //currentCondition = [0, 0] // [0] is condition, [1] is whether there is 1 gambler who chooses differently probeMode = 1 if (randPlayerTrial === 0) { // correct + consensus or correct + dissent (cond 1, 3) / diff colors but same icons //var trialZeroChoices = [0, 2] randProbeImageArray = jsPsych.randomization.shuffle(randProbeImageArrayInit) //trialZeroCond = jsPsych.randomization.shuffle(trialZeroChoices) trialZeroCondInit = trialZeroChoices.shift() if (trialZeroCondInit === 0){ trialZeroCond = [0, 2] } else if (trialZeroCondInit === 2){ trialZeroCond = [2, 0] } //currentRound = randProbeImage //currentCondition = trialZeroCond } else if (randPlayerTrial === 1) { // incorrect + consensus or incorrect + dissent (cond 2, 4) / diff colors, same icons //var trialOneChoices = [1, 3] randProbeImageArray = jsPsych.randomization.shuffle(randProbeImageArrayInit) //trialOneCond = jsPsych.randomization.shuffle(trialOneChoices) trialOneCondInit = trialOneChoices.shift() if (trialOneCondInit === 1){ trialOneCond = [1, 3] } else if (trialOneCondInit === 3){ trialOneCond = [3, 1] } //currentRound = randProbeImage //currentCondition = trialOneCond } else if (randPlayerTrial === 2) { // high reward vs low (random color, diff icons) var condArray = [0, 1, 2, 3] condShuffle = jsPsych.randomization.shuffle(condArray) trialTwoDecide = trialTwoChoices.shift() if (trialTwoDecide === 0){ //if this probe 2 trial is high icon on left trialTwoChoicesLeft = trialTwoChoicesHighLeft.shift() trialTwoChoicesRight = trialTwoChoicesHighLeft.shift() //left is high choice //right is low choice } else if (trialTwoDecide === 1){ trialTwoChoicesLeft = trialTwoChoicesLowLeft.shift() trialTwoChoicesRight = trialTwoChoicesLowLeft.shift() //right is high choice //left is low choice } //currentRound = [trialTwoChoicesHigh[0], trialTwoChoicesLow[0]] //currentCondition = condShuffle[0] } } else if (randProbeCondition[0] === 0) { currentRound = randRoundInfo.shift(); gamblersCurrentShift = gamblers.shift() if (gamblersCurrentShift === 0) { gamblersMaj.shift() } else if (gamblersCurrentShift === 1) { gamblersNonMaj.shift() } else if (gamblersCurrentShift === 2) { gamblersMaj.shift() } //currentCondition = conditionZip.shift() currentCondition = conditionZip[numTrials] currentProbeCond = randProbeCondition[0] probeMode = 0 } } var fixation = { type: 'html-keyboard-response', stimulus: '
+
', choices: jsPsych.NO_KEYS, trial_duration: 1500, }; var rewLeft = 0 var rewRight = 0 var rewVal = 0; var responseTime; var showTrial = { type: "html-keyboard-response", choices: [37, 39], stimulus: function () { numTrialsAll++; if (currentProbeCond === 0) { numTrials++; } select = 0; return trialStimTemplate }, on_finish: function (data) { //randProbeCondition.shift() responseTime = data.rt rewLeft, rewVal = determineReward(); //rewLeft, rewRight = determineReward(); data.preRating = NaN data.postRating = NaN data.Consent = NaN data.Debrief = NaN if (randProbeCondition[0] === 1) { data.rewValLeft = NaN data.rewValRight = NaN } else if (randProbeCondition[0] === 0) { data.rewValLeft = rewVal[0]; data.rewValRight = rewVal[1]; } data.trialNum = numTrialsAll; if (randProbeCondition[0] === 1) {//changed from [0] to .shift() if (randPlayerTrial === 0) { // correct + consensus or correct + dissent (cond 1, 3) / diff colors but same icons currentRoundProbe = randProbeImage currentConditionProbe = trialZeroCond } else if (randPlayerTrial === 1) { // incorrect + consensus or incorrect + dissent (cond 2, 4) / diff colors, same icons currentRoundProbe = randProbeImage currentConditionProbe = trialOneCond } else if (randPlayerTrial === 2) { // high reward vs low (random color, diff icons) //currentRoundProbe = [trialTwoChoicesHigh[0], trialTwoChoicesLow[0]] // 2 item array for left, right currentRoundProbe = [trialTwoChoicesLeft, trialTwoChoicesRight] currentConditionProbe = condShuffle[0] } } //data.currRound = currentRound; if (currentProbeCond === 1) { if (randPlayerTrial === 0) { // correct + co nsensus or correct + dissent (cond 1, 3) / diff colors but same icons data.currRoundLeft = currentRoundProbe; data.currRoundRight = currentRoundProbe; } else if (randPlayerTrial === 1) { // incorrect + consensus or incorrect + dissent (cond 2, 4) / diff colors, same icons data.currRoundLeft = currentRoundProbe; data.currRoundRight = currentRoundProbe; } else if (randPlayerTrial === 2) { // high reward vs low (random color, diff icons) data.currRoundLeft = currentRoundProbe[0]; data.currRoundRight = currentRoundProbe[1]; } data.roundColor = 'NaN' //data.roundCondition = currentConditionProbe+=1 if (randPlayerTrial === 0) { currentConditionProbeSave = [currentConditionProbe[0] + 1, currentConditionProbe[1] + 1] data.roundConditionLeft = currentConditionProbeSave[0]; data.roundConditionRight = currentConditionProbeSave[1]; } else if (randPlayerTrial === 1) { currentConditionProbeSave = [currentConditionProbe[0] + 1, currentConditionProbe[1] + 1] data.roundConditionLeft = currentConditionProbeSave[0]; data.roundConditionRight = currentConditionProbeSave[1]; } else if (randPlayerTrial === 2) { currentConditionProbe++ currentConditionProbeSave = currentConditionProbe data.roundConditionLeft = currentConditionProbeSave data.roundConditionRight = currentConditionProbeSave } //data.roundCondition = currentConditionProbe.map(a => a+1); data.gamblersLeftNums = NaN data.gamblersRightNums = NaN data.probeCondition = randPlayerTrial } else if (currentProbeCond === 0) { data.currRoundLeft = currentRound[0]; data.currRoundRight = currentRound[1]; data.roundColor = cellColors[currentCondition[0]]; data.roundConditionLeft = currentCondition[0] + 1 data.roundConditionRight = currentCondition[0] + 1 if (currentCondition[0] === 0) { // condition 1: win and consensus if (chosBandit === 37) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] console.log(gamblersMajCurrent) gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } } } else if (currentCondition[0] === 1) { // condition 2: lose and consensus if (chosBandit === 37) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } } } else if (currentCondition[0] === 2) { // condition 3: win and dissent if (chosBandit === 37) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } } } else if (currentCondition[0] === 3) { // condition 4: lose and dissent if (chosBandit === 37) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[1] gamblersRightNum = gamblersNonMajCurrent[0] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } } else if (chosBandit === 39) { if (gamblersCurrentShift === 0) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[0] gamblersRightNum = gamblersMajCurrent[1] } else if (gamblersCurrentShift === 1) { gamblersNonMajCurrent = gamblersNonMaj[0] gamblersLeftNum = gamblersNonMajCurrent[0] gamblersRightNum = gamblersNonMajCurrent[1] } else if (gamblersCurrentShift === 2) { gamblersMajCurrent = gamblersMaj[0] gamblersLeftNum = gamblersMajCurrent[1] gamblersRightNum = gamblersMajCurrent[0] } } } data.gamblersLeftNums = gamblersLeftNum data.gamblersRightNums = gamblersRightNum console.log(gamblersLeftNum) data.probeCondition = NaN } data.slotChoice = chosBandit if (currentProbeCond === 1) { leftSelection = NaN } else if (currentProbeCond === 0) { leftSelection = NaN // issue is that when the code is running, leftSelection is a trial behind. // this means that the leftSelection variable is getting the currentCondition/chosBandit info too late } data.gambChooseLeft = leftSelection //data.gamblersLeftNum = gamblersLeftNum //data.gamblersRightNum = gamblersRightNum console.log(gamblersLeftNum) data.preTrialNum = NaN data.postTrialNum = NaN data.RT = responseTime randProbeCondition.shift() } } var showSelect = { type: "html-keyboard-response", trial_duration: 1000, choices: jsPsych.NO_KEYS, stimulus: function() { select = 1; return trialStimTemplate } }; var showGamblers = { type: "html-keyboard-response", trial_duration: 1500, choices: jsPsych.NO_KEYS, stimulus: function() { select = 2; return trialStimTemplate if (chosBandit === 37) { avatar.style.top = screen_height * 0.25 + 'px' avatar.style.left = screen_width * 0.45 + 'px' } else if (chosBandit === 39) { avatar.style.top = screen_height * 0.25 + 'px' avatar.style.left = screen_width * 0.45 + 'px' } } }; var probeDuration = function() { if (currentProbeCond === 1){ var conditionalDuration = 0 } else if (currentProbeCond === 0){ var conditionalDuration = 3000 } console.log(conditionalDuration) return conditionalDuration; } var showReward = { type: "html-keyboard-response", //trial_duration: 3000, trial_duration: probeDuration, choices: jsPsych.NO_KEYS, stimulus: function() { select = 3; return trialStimTemplate if (chosBandit === 37) { avatar.style.top = screen_height * 0.25 + 'px' avatar.style.left = screen_width * 0.45 + 'px' } else if (chosBandit === 39) { avatar.style.top = screen_height * 0.25 + 'px' avatar.style.left = screen_width * 0.45 + 'px' } }, on_finish: function (data) { data.gamblersLeftNums = gamblersLeftNum data.gamblersRightNums = gamblersRightNum } };