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 =
"
" +
"
No Feedback
" +
"
" +
"

" +
"

" +
"

" +
"

" +
"
![]()
" +
"
![]()
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"
" +
"

" +
"
"*/
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
}
};