def startTrial(NUMBER, OPERATOR):

    #fixcross.preload()
    exp = design.Experiment("MATH")
    control.initialize(exp)
    control.start()
    fixcross = stimuli.FixCross()
    txt_input = io.TextInput("= ")

    stimuli.TextScreen("MATH GAME",
                       "STARTING in 10 secs",
                       heading_size=40,
                       text_size=60).present()
    exp.clock.wait(2000)  #stim -1
    fixcross.preload()
    fixcross.present()
    exp.clock.wait(10000)
    b = design.Block()

    for i in range(0, 10):  #FOR 10 TRIALS
        b.clear_trials()
        b = design.Block()
        print(i)
        tr = atl.arithmetictriall1(NUMBER, OPERATOR)
        print(tr)

        for trel in tr[0]:
            t = design.Trial()
            s = stimuli.TextLine(text=str(trel),
                                 text_size=120,
                                 text_colour=misc.constants.C_GREEN)
            t.add_stimulus(s)
            b.add_trial(t)
        #print(b.trials)
        exp.add_block(b)

        #START TEST: ONSCREEN
        for b in exp.blocks:
            fixcross.present()
            exp.clock.wait(100)

            for t in b.trials:
                t.stimuli[0].present()
                exp.clock.wait(1000)

        print(b)
        exp.clock.reset_stopwatch()
        answer = txt_input.get()

        try:
            answer = int(answer)
            if answer == tr[1]:
                print("Correct")
            else:
                print("incorrect")
        except:
            print("incorrect")
Пример #2
0
    def mount_design(self):
        """
        Creates a list of expyriment.design.Block objects, creates trials and loads the experimental stim
        according to the class parameters

        Returns
        -------

        exp_design: list of expyriment.design.Block objects
                    list containing the blocks, trials and stimuli ready to run
        """

        block_list = [design.Block(name='run%d' % block + 1 for block in range(self.n_block))]
        run_list = [open(filename) for filename in sorted(os.listdir(self.stim_list))]

        for block in range(self.n_block):
            for line in run_list[block].readlines():
                trial = design.Trial()
                stim = stimuli.TextLine("+")

                trial.add_stimulus(stim)

                block_list[block].add_trial(trial)

            self.exp.add_block(block_list[block])
 def run_block(self, block_id=None):
     block = design.Block()
     if block_id:
         block._id = block_id
     block.set_factor('starting_length',
                         self.exp.config.getforblock('DESIGN',
                             'starting_length', block_id-1, cast=int))
     block.set_factor('reverse',
                         int(self.exp.config.getforblock('DESIGN',
                             'reverse', block_id-1, cast=bool)))
     block.set_factor('sequence_type',
                         self.exp.config.getforblock('DESIGN',
                             'sequence_type', block_id-1))
     seq_length = block.get_factor('starting_length')
     instructions_changed = False
     if block_id > 1 and block.get_factor('reverse') != \
         int(self.exp.config.getforblock('DESIGN','reverse', block_id-2,
             cast=bool)):
         instructions_changed = True
     self.exp._show_message('instruction_title_changed' if
          instructions_changed else 'instruction_title',
          'instruction_reverse' if block.get_factor('reverse') else
          'instruction', stall=8000, heading_bold=True,
          heading_colour=(255,0,0) if instructions_changed else None)
     block.set_factor('trials', self.exp.config.getforblock('DESIGN',
                         'trials', block_id-1, cast=int))
     for t in range(block.get_factor('trials')):
         correct = self.run_trial(block, seq_length, trial_id=t+1)
         seq_length += 1 if correct else -1
         seq_length = max(seq_length, 1)
     self.exp.add_block(block)
     self.exp._log_block(block)
 def prepare_block(self, id):
     block = design.Block()
     block.set_factor('num_targets', self.exp.config.getforblock('DESIGN', 'num_targets', id, cast=int))
     block.set_factor('target_titles', self.exp.config.getforblock(
         'DESIGN', 'target_titles', id))
     block.set_factor('timeout', self.exp.config.getforblock('DESIGN', 'timeout', id, cast=int))
     for t in range(self.exp.config.getforblock('DESIGN', 'trials', id, cast=int)):
         block.add_trial(self.prepare_trial(block))
     self.exp.add_block(block)
def trial_generator(task, N):
    if task[0] == "mixed_task":
        N = N // 2
    b = design.Block()
    b.set_factor("task_type", task[0])
    for specific_task in task[1]:
        for my_trial in specific_task:
            t = design.Trial()
            t.set_factor("shape", my_trial[0])
            t.set_factor("filling", my_trial[1])
            s = stimuli.Picture(my_trial[2])
            t.add_stimulus(s)
            b.add_trial(t, copies=N)
    b.shuffle_trials()
    return b
Пример #6
0
def createBlock(COLORS, blockname,
                exp):  # i/p list 'COLORS' and RETURNS a stimuli block 'b'
    #for level in ["LEVEL 1"]:#,"LEVEL 2"]:
    #print(level)
    b = design.Block(name=blockname)
    b.set_factor("level", blockname)  #blockname as level
    for color in COLORS:
        t = design.Trial()
        t.set_factor("COLOR", color[0])
        #print(type(color[1]))
        #print(color[0])
        s = stimuli.Rectangle([200, 200], position=[0, 0], colour=color[1])
        t.add_stimulus(s)
        b.add_trial(t, copies=1)
    #b.shuffle_trials() #never use this line
    #print(b.trials)
    exp.add_block(b)
    return b  # b IS AN EXPERIMENT TRIAL <INPUT LIST 'COLORS' is coverted to Experiment object>
Пример #7
0
def design_experiment(exp, positions, colors, pairings):
    """Designs a Simon Task experiment."""

    for pair_name, pairing in pairings.items():

        b = design.Block()
        b.set_factor("pairing", pair_name)

        for pos_name, position in positions.items():
            for color_name, color in colors.items():

                t = design.Trial()
                t.set_factor("position", pos_name)
                t.set_factor("color", color_name)
                s = stimuli.Rectangle((50, 50),
                                      position=position,
                                      colour=color)
                t.add_stimulus(s)
                b.add_trial(t, copies=2)

        b.shuffle_trials()
        exp.add_block(b)

    return exp
Пример #8
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Save design to csv file
"""
from __future__ import print_function

from expyriment import design

exp = design.Experiment(name="SNARC")

# Design: 2 response mappings x 8 stimuli x 10 repetitions
for response_mapping in ["left_odd", "right_odd"]:
    block = design.Block()
    block.set_factor("mapping", response_mapping)
    #add trials to block
    for digit in [1, 2, 3, 4, 6, 7, 8, 9]:
        trial = design.Trial()
        trial.set_factor("digit", digit)
        block.add_trial(trial, copies=10)
    block.shuffle_trials()
    exp.add_block(block)

exp.add_experiment_info("This a just a SNARC experiment.")
#add between subject factors
exp.add_bws_factor('mapping_order', ['left_odd_first', 'right_odd_first'])
#prepare data output
exp.data_variable_names = [
    "block", "mapping", "trial", "digit", "ISI", "btn", "RT", "error"
]
Пример #9
0
c1 = stimuli.BlankScreen()
blank.plot(c1)
c1.preload()
c2 = stimuli.BlankScreen()
fix.plot(c2)
c2.preload()
c3 = stimuli.BlankScreen()
fix.plot(c3)
rect_b.plot(c3)
c3.preload()

txt_input = io.TextInput("")

# DESIGN
b = design.Block()
for trial in range(len(StimList)):
    t = design.Trial()

    # blank screen

    t.add_stimulus(c1)

    # fixation dot

    t.add_stimulus(c2)

    # rectangles

    t.add_stimulus(c3)
Пример #10
0
from expyriment import design, control, stimuli, misc, io
import random
control.set_develop_mode(True)

exp = design.Experiment(name="My Experiment")
control.initialize(exp)

fixcross = stimuli.FixCross()
fixcross.preload()
blankscreen = stimuli.BlankScreen()
blankscreen.preload()

b = design.Block(name="Only Block")
for i in range(10):
    waiting_time = random.randint(200, 2000)
    t = design.Trial()
    t.set_factor("waiting_time", waiting_time)
    s = stimuli.Circle(50)
    t.add_stimulus(s)
    b.add_trial(t)
exp.add_block(b)

exp.data_variable_names = ["Waiting Time", "Response Time"]

control.start()

for block in exp.blocks:
    for trial in block.trials:
        fixcross.present()
        exp.clock.wait(
            trial.get_factor("waiting_time") - trial.stimuli[0].preload())
Пример #11
0
myFilenames = []
csvReader = reader(open(stimTextFilename, 'rb'))
for row in csvReader:
    myFilenames.append(row)

myFilenames = np.swapaxes(myFilenames, 0, 1)

conditionNames = [
    "facesUpright", "facesInverted", "scenesUpright", "scenesInverted"
]
conditionNames.extend(conditionNames)

imageLocation = "%s/Images" % stimTextFilePath

for blockNumber in range(0, 8):
    b = design.Block(name=conditionNames[blockNumber])
    b.set_factor("Condition", conditionNames[blockNumber])

    firstImageList = [
        os.path.join(imageLocation, f) for f in [
            myFilenames[blockNumber][i]
            for i in range(len(myFilenames[blockNumber])) if i % 2 == 0
        ]
    ]
    secondImageList = [
        os.path.join(imageLocation, f) for f in [
            myFilenames[blockNumber][i]
            for i in range(len(myFilenames[blockNumber])) if i % 2 == 1
        ]
    ]
Пример #12
0
    Press the space bar to start.""")

###### 1.A --> Definition of the only two possible trials made up of two stimuli "Blue/Red"

#Stimulus red
visual_trial_red = design.Trial()
visual_trial_red.add_stimulus(stimuli.Circle(radius=100, colour=(255, 0, 0)))

#Stimulus blue
visual_trial_blue = design.Trial()
visual_trial_blue.add_stimulus(stimuli.Circle(radius=100, colour=(0, 0, 255)))

###### 1.B --> Definition of Associated Blocks "Blue/Red"

visual_block_red = design.Block("red")

# Buidlding red block with 5 stimuli

for i in range(NTRIALS):

    visual_block_red.add_trial(visual_trial_red)

exp.add_block(visual_block_red)  # Adding red block to experiment

# Building blue block with 5 stimuli

visual_block_blue = design.Block("blue")

for i in range(NTRIALS):
Пример #13
0
                                    'task',
                                    'reactionTime',
                                    'stimulus',
                                    'response',
                                    'isCorrect',
                                    'blockName',
                                    'isSwitchTrial'])

# creating blocks
experiment.clear_blocks()
for blockNo in expDesign.block_cnt.unique():
    rows = expDesign[expDesign.block_cnt == blockNo]

    blockName = rows.blockName.unique()[0]

    block = design.Block(blockName)

    for row in rows.iterrows():
        trial = design.Trial()

        task = row[1].task
        if task == 'odd-even':
            bgColor = misc.constants.C_WHITE
        else:
            bgColor = misc.constants.C_DARKGREY

        trial.set_factor('task', task)

        stimulus = stimuli.TextLine(text=str(row[1].stimulus),
                                    text_size=22, text_font='Courier New',
                                    text_bold=True)
Пример #14
0
from expyriment import design, control, stimuli, misc, io
control.set_develop_mode(True)

exp = design.Experiment(name="My Experiment")
control.initialize(exp)

for name, color in [["green", misc.constants.C_GREEN], ["red", misc.constants.C_RED]]:
    block = design.Block(name=name.capitalize()+" Stimuli")
    block.set_factor("Color", name)
    for where in [["left", -300], ["right", 300]]:
        t = design.Trial()
        t.set_factor("Position", where[0])
        s = stimuli.Rectangle([50, 50], position=[where[1], 0], colour=color)
        t.add_stimulus(s)
        block.add_trial(t)   
    exp.add_block(block)


control.start()
                        
for block in exp.blocks:
    for trial in block.trials:
        trial.stimuli[0].present()
        exp.clock.wait(1000)
        
        
control.end()
Пример #15
0
control.start(exp)

fixcross = stimuli.FixCross(size=(30, 30), line_width=3, colour=(0, 255, 0))
fixcross.preload()

fixcross2 = stimuli.FixCross(size=(30, 30),
                             line_width=2,
                             colour=(128, 128, 128))
fixcross2.preload()

liste = "list%d.csv" % (2 - exp.subject % 2)
listname = os.path.join("lists", liste)

sequences = [i for i in csv.reader(open(listname))]

block = design.Block(name="block1")

for line in sequences:
    trial = design.Trial()
    trial.set_factor("Condition", line[0])
    stim = []
    for w in line[1:]:
        if sys.version_info > (3, 0):
            s = w
        else:
            s = w.decode('utf-8')
        stim = stimuli.TextLine(s, text_font=FONT, text_size=FONT_SIZE)
        trial.add_stimulus(stim)

    block.add_trial(trial)
Пример #16
0
ITI = 1000  # inter trial interval
MAX_RESPONSE_TIME = 2000
AUDIO_STIMULUS = 'click.wav'

exp = design.Experiment(name="AudioVisual Detection")
control.initialize(exp)

blankscreen = stimuli.BlankScreen()

visual_trial = design.Trial()
visual_trial.add_stimulus(stimuli.FixCross(size=(50, 50), line_width=4))

audio_trial = design.Trial()
audio_trial.add_stimulus(stimuli.Audio(AUDIO_STIMULUS))

visual_block = design.Block("visual")
for i in range(NTRIALS):
    visual_block.add_trial(visual_trial)
exp.add_block(visual_block)

audio_block = design.Block("audio")
for i in range(NTRIALS):
    audio_block.add_trial(audio_trial)
exp.add_block(audio_block)

audiovisual_block = design.Block("audiovisual")
for i in range(NTRIALS // 2):
    audiovisual_block.add_trial(audio_trial)
    audiovisual_block.add_trial(visual_trial)
audiovisual_block.shuffle_trials()
exp.add_block(audiovisual_block)
Пример #17
0
def startTrial(NUMBER,OPERATOR):

    w, h = 10, 3;
    Matrix = [[0 for x in range(w)] for y in range(h)]       # Define 2D array

    #fixcross.preload()
    exp = design.Experiment("MATH")
    control.initialize(exp)
    control.start()
    fixcross = stimuli.FixCross(size=(40,40),colour=misc.constants.C_WHITE,position=(0,200))
    txt_input=io.TextInput("= ")

    inputNAME=io.TextInput("ENTER NAME: ")
    VolunteerNAME = inputNAME.get() # First input by volunteer
    Matrix[2][1]=VolunteerNAME

    stimuli.TextScreen("MATH GAME -LEVEL 1",". . . RELAX . . .\n\n\n\n\n\n+\n\nlook at fixcross\n\n\nSTARTS IN 10 SECONDS",heading_size=40,text_size=20,heading_colour=misc.constants.C_WHITE,text_colour=misc.constants.C_WHITE).present()
    exp.clock.wait(10000) #stim -1                                               REMOVE # ON COMMISSION
    fixcross.preload()
    fixcross.present()
    exp.clock.wait(10000)                                                        # REMOVE # ON COMMISSION
    b = design.Block()

    for i in range (0,10):                                                       # cOMMISSION : 3->10 #FOR 10 TRIALS
        b.clear_trials()
        b = design.Block()
        print(i)
        tr=atl.arithmetictriall1(NUMBER,OPERATOR)
        print(tr)

        for trel in tr[0]:
            t=design.Trial()
            s = stimuli.TextLine(text=str(trel),text_size=200,text_colour=misc.constants.C_GREEN)
            t.add_stimulus(s)
            b.add_trial(t)
        #print(b.trials)
        exp.add_block(b)

        #START TEST: ONSCREEN
        #tx0=time.time()
        fixcross.present()
        exp.clock.wait(1000)
        #tx1=time.time()-tx0
        #print("ttt %d"%tx1)
        #xcount = 1                #debug fixcross timings (previously increasing time b=1)
        for b in exp.blocks:

            for t in b.trials:
                t.stimuli[0].present()
                exp.clock.wait(800) #>1000
            #xcount=0

        print(b)
        #exp.clock.reset_stopwatch()
        t0=time.time()
        answer = txt_input.get()
        responsetime=time.time()-t0     #response time

        try:
            answer=int(answer)
            if answer==tr[1]:
                print("Correct")
                Matrix[0][i]=5
                Matrix[1][i]=responsetime
            else:
                print("incorrect")
                Matrix[0][i]=-5
                Matrix[1][i]=responsetime
        except:
            print("incorrect")
            Matrix[0][i]=-5
            Matrix[1][i]=responsetime

    fixcross.present()
    exp.clock.wait(5000)
    control.end()
    #print(Matrix)
    return Matrix
Пример #18
0
def get_subject_sex():
    sex_question.present()
    key, rt = exp_1.keyboard.wait(keys=[MALE_SEX_KEY, FEMALE_SEX_KEY])
    if key == MALE_SEX_KEY:
        sex = 'Male'
    elif key == FEMALE_SEX_KEY:
        sex = 'Female'
    return (sex)


STIM_DIR = 'Stimuli/'

#I decided not to implement a loop for these three blocks, since I would need to use a dictionary to create variable names from strings. The popular opinion is that it is not advisable

pure_shape_block = design.Block()
for shape in ['diamond', 'square']:
    for number in [2, 3]:
        trial = design.Trial()
        trial.set_factor('block', 'pure_shape')
        trial.set_factor('task', 'shape')
        trial.set_factor('shape', shape)
        trial.set_factor('number_of_circles', number)
        pngname = os.path.join(STIM_DIR,
                               'shape_{}_{}_circles.png'.format(shape, number))
        trial.add_stimulus(stimuli.Picture(pngname))
        pure_shape_block.add_trial(trial)
pure_shape_block.shuffle_trials()

pure_filling_block = design.Block()
for shape in ['diamond', 'square']:
 def prepare_block(self):
     block = design.Block()
     # block.set_factor('block_factor', self.exp.config.getint('DESIGN', 'block_factor'))
     for t in range(self.exp.config.getint('DESIGN', 'trials')):
         block.add_trial(self.prepare_trial(block))
     self.exp.add_block(block)
Пример #20
0
from expyriment import design, control, stimuli

control.defaults.window_mode = True
control.defaults.window_size = [800,600]
design.defaults.experiment_background_colour = (230,230,70)

exp = design.Experiment(name="Cool Experiment")
control.initialize(exp)

block_one = design.Block(name="Our only block")
tmp_trial = design.Trial()

cross = stimuli.FixCross()
cross.preload()

# define stimulus positions
positions = [-400, -200, 0, 200, 400]

# go through all positions
for xpos in positions:
    # create circle accordingly
    stim = stimuli.Circle(radius=25, colour=(0,0,0),position=[xpos,0])
    stim.preload()
    tmp_trial.add_stimulus(stim)
    tmp_trial.add_stimulus(cross)
    block_one.add_trial(tmp_trial)
    tmp_trial = tmp_trial.copy()
    tmp_trial.clear_stimuli()
exp.add_block(block_one)
control.start()
Пример #21
0

# DESIGN
exp = design.Experiment("Stroop Task (Colour)")
exp.add_data_variable_names(["TrialID, Condition, Text, Colour, Key, RT, Correct"])
control.initialize(exp)

out_protocol = StimulationProtocol("time")
out_protocol.add_condition("congruent")
out_protocol.add_condition("incongruent")
out_protocol.add_condition("error")

fixcross = stimuli.FixCross()
fixcross.preload()

main = design.Block()
for r in range(REPETITIONS):
    for name in ("RED",
                 "GREEN"):
        for colour in (misc.constants.C_RED,
                       misc.constants.C_GREEN):
            trial = design.Trial()
            if (name == "RED" and colour == misc.constants.C_RED) or \
               (name == "GREEN" and colour == misc.constants.C_GREEN):
                trial.set_factor("Condition", "congruent")
            else:
                trial.set_factor("Condition", "incongruent")
            stim = stimuli.TextLine(name,
                                    text_size=70,
                                    text_font="monospace",
                                    text_colour=colour)
Пример #22
0
# Prep stimuli directories
stimuliPaths = []
subDirectories = ["faces", "objects", "scenes", "scrambled"]
design.randomize.shuffle_list(subDirectories)
subDirectories.extend(subDirectories[::-1])

for directory in subDirectories:
	stimuliPaths.append(os.path.join("/Users/samweiller/Desktop/localizerStimuli", directory))

for condition in stimuliPaths:
	validImages = 0

	conditionName = subDirectories[stimuliPaths.index(condition)]

	b = design.Block(name=conditionName)
	b.set_factor("Condition", conditionName)
	imageNames = [os.path.join(condition, f) for f in os.listdir(condition)]
	imageRandomizer = design.randomize.rand_int_sequence(0, imagesPerBlock)
	for imageNumber in imageRandomizer:
		if validImages < imagesPerBlock:
			if imageNames[imageNumber].endswith('jpg'):
				t = design.Trial()
				soloName = os.path.split(imageNames[imageNumber])[1]
				t.set_factor("Image Name", soloName)

				s = stimuli.Picture(imageNames[imageNumber], (0,0))
				s.scale(scaleFactor)
				t.add_stimulus(s)
				b.add_trial(t, copies=1, random_position=True)
Пример #23
0
    def prepare_block(self, id, prev_block={}):
        block = design.Block()
        if type(id) is int:
            block._id = id + 1
        block = self.exp._load_block_settings(block, [('trials', int),
                                                      ('num_boxes', int)])
        block = self.exp._load_block_settings(block, [('canvas_size', float)],
                                              section='APPEARANCE')
        button_height = self.exp._unit(
            self.exp.config.get('APPEARANCE', 'button_height'))
        self.canvas_size = int(
            min(self.exp.screen.window_size[0],
                self.exp.screen.window_size[1] - button_height * 2) *
            block.get_factor('canvas_size'))
        self.num_boxes = block.get_factor('num_boxes')
        if self.exp.config.getboolean('DESIGN', 'reaction_time_only'):
            block.set_factor('reaction_time_only', 'true')
            block.set_factor('nback', 1)
            block.set_factor('nback_mode', 'P')
            if self.exp.config.has_option('DESIGN', 'repeat_probability'):
                block = self.exp._load_block_settings(
                    block, [('repeat_probability', float)])
            else:
                block.set_factor('repeat_probability', 1)
        else:
            block = self.exp._load_block_settings(
                block, [('nback', int), ('nback_mode', str),
                        ('repeat_probability', float)])

        self.grid = self.prepare_grid_stimulus()

        self.trial_options = {
            'P': list(range(self.num_boxes)),
            'C': self.exp._colours(self.exp.config.get('DESIGN', 'colours'))
        }
        # allow for one colour only
        if type(self.trial_options['C'][0]) is int:
            self.trial_options['C'] = [self.trial_options['C']]

        self.modes = {'P': 'mode_position', 'C': 'mode_colour'}

        if not block.get_factor('reaction_time_only'):
            mode_text = (_('mode_connector') + ' ').join(', '.join([
                _(self.modes[M]) for M in block.get_factor('nback_mode')
            ]).rsplit(', ', 1))
            block.set_factor('mode_text', mode_text)

        if prev_block and self.exp.config.getboolean('DESIGN',
                                                     'change_nback_level'):
            block.set_factor(
                'nback',
                max(
                    1, prev_block['nback'] + prev_block['correct_ratio']
                    >= self.exp.config.getfloat(
                        'DESIGN', 'increase_nback_correct_ratio') -
                    prev_block['correct_ratio'] < self.exp.config.getfloat(
                        'DESIGN', 'decrease_nback_correct_ratio')))

        for i, trial_item in enumerate(
                NBack.compute_trial_items(block, self.trial_options)):
            block.add_trial(self.prepare_trial(block, trial_item, i + 1))

        self.exp.add_block(block)
        return (block)
Пример #24
0
from expyriment import design, control, stimuli

control.defaults.window_mode = True
control.defaults.window_size = [800, 600]
design.defaults.experiment_background_colour = (230, 230, 70)

exp = design.Experiment(name="Cool Experiment")

control.initialize(exp)

block_one = design.Block("Our only block")
tmp_trial = design.Trial()

cross = stimuli.FixCross(colour=(0, 0, 0))
cross.preload()

tmp_trial.add_stimulus(cross)
block_one.add_trial(tmp_trial)
exp.add_block(block_one)

control.start()

for b in exp.blocks:
    for t in b.trials:
        t.stimuli[0].present()

        exp.keyboard.wait()

control.end()
Пример #25
0
    df.index = df.index.astype('Int32')
    return df


control.set_develop_mode(False)
control.defaults.window_mode = True
control.defaults.window_size = [800, 600]
control.defaults.initialize_delay = 0

exp = design.Experiment(name="My Experiment")
control.initialize(exp)

conditions = load_df("../bws_study.csv").dropna().groupby("Condition")
print() #[data for nr, data in conditions]
for nr, data in conditions:
    block = design.Block(name="Condition" + str(int(nr)))
    block.set_factor("Condition", nr)
    for nr, sents in data.iterrows():
        t = design.Trial()
        t.set_factor("ItemNum", sents["Item"])
        for sent in ["S1", "S2", "S3", "S4", "S5", "S6", "S7"]:
            s = stimuli.TextLine(text=sents[sent], text_size=20)
            t.add_stimulus(s)
        block.add_trial(t)
    exp.add_block(block)

exp.add_bws_factor("FallsWennCondition", ["Wenn-Condition", "Falls-Condition"])
exp.add_bws_factor("GabGabCondition", ["GabGab-Condition", "GabnichtGab-Condition"])

print() #exp
control.start()
Пример #26
0
    df = df.dropna(subset=['Exp'])
    return df


control.set_develop_mode(False)
control.defaults.window_mode = True
control.defaults.window_size = [800, 600]
control.defaults.initialize_delay = 0 # you shouldn't set this to zero but it annoys me and I don't care about timing.

exp = design.Experiment(name="My Experiment")
control.initialize(exp)

conditions = load_df("../bws_study.csv").dropna().groupby("Condition")
print() #[data for nr, data in conditions]
for nr, data in conditions:
    block = design.Block(name=f"Condition{nr}")
    block.set_factor("Condition", nr)
    for nr, sents in data.iterrows():
        t = design.Trial()
        t.set_factor("ItemNum", sents["Item"])
        for sent in ["S1", "S2", "S3", "S4", "S5", "S6", "S7"]:
            s = stimuli.TextLine(text=sents[sent], text_size=20)
            t.add_stimulus(s)
        block.add_trial(t)
    exp.add_block(block)
#right now, we have ALL conditions for all subjects...

exp.add_bws_factor("FallsWennCondition", ["Wenn-Condition", "Falls-Condition"])
exp.add_bws_factor("GabGabCondition", ["GabGab-Condition", "GabnichtGab-Condition"])

print() #exp, exp.n_bws_factor_conditions