Пример #1
0
def zollner_display(parameters):
    """
    """
    n.image(pyllusion_path + "line_red.png",
            x=parameters["Top_Line_x"],
            y=parameters["Top_Line_y"],
            size=parameters["Top_Line_size"],
            rotate=-parameters["Top_Line_Angle"],
            scale_by="width")
    n.image(pyllusion_path + "line_red.png",
            x=parameters["Bottom_Line_x"],
            y=parameters["Bottom_Line_y"],
            size=parameters["Bottom_Line_size"],
            rotate=-parameters["Bottom_Line_Angle"],
            scale_by="width")

    for i in range(15):
        n.line(left_x=-7.25 + i + parameters["Distractor_Left_x"],
               left_y=2.5 + parameters["Distractor_Left_y"],
               right_x=-7.25 + i + parameters["Distractor_Right_x"],
               right_y=2.5 + parameters["Distractor_Right_y"],
               line_color="black",
               thickness=parameters["Distractor_Thickness"])
    for i in range(15):
        n.line(left_x=-6.75 + i - parameters["Distractor_Left_x"],
               left_y=-2.5 + parameters["Distractor_Left_y"],
               right_x=-6.75 + i - parameters["Distractor_Right_x"],
               right_y=-2.5 + parameters["Distractor_Right_y"],
               line_color="black",
               thickness=parameters["Distractor_Thickness"])
Пример #2
0
def rodframe_display(parameters):
    """
    """
    n.image(pyllusion_path + "frame.png",
            rotate=-1 * parameters["Frame_Angle"],
            size=parameters["Frame_Size"])
    n.image(pyllusion_path + "rod_red.png",
            rotate=-1 * parameters["Rod_Angle"],
            size=parameters["Rod_Size"])
Пример #3
0
def ponzo_display(parameters):
    """
    """
#    n.line(left_x=-5, left_y=-8, right_x=-1, right_y=8, line_color="black", thickness=parameters["Vertical_Lines_Thickness"])
#    n.line(left_x=1, left_y=8, right_x=5, right_y=-8, line_color="black", thickness=parameters["Vertical_Lines_Thickness"])
    n.image(pyllusion_path + "line.png", x=-3, y=0, size=20, rotate=-90-parameters["Vertical_Line_Angle"], scale_by="width")
    n.image(pyllusion_path + "line.png", x=3, y=0, size=20, rotate=-90+parameters["Vertical_Line_Angle"], scale_by="width")

    n.line(left_x=parameters["Bottom_Line_Left_x"], left_y=parameters["Bottom_Line_Left_y"], right_x=parameters["Bottom_Line_Right_x"], right_y=parameters["Bottom_Line_Right_y"], line_color="red", thickness=parameters["Bottom_Line_Thickness"])
    n.line(left_x=parameters["Top_Line_Left_x"], left_y=parameters["Top_Line_Left_y"], right_x=parameters["Top_Line_Right_x"], right_y=parameters["Top_Line_Right_y"], line_color="red", thickness=parameters["Bottom_Line_Thickness"])
def display_explosion(side="RIGHT"):
    if side == "RIGHT":
        n.image("assets/explosion.png", x=5, y=6.5, size=5)
    elif side == "LEFT":
        n.image("assets/explosion.png", x=-5, y=6.5, size=5)
    elif side == "CENTRE":
        n.image("assets/explosion.png", x=0, y=-8, size=7)
Пример #5
0
def run_trials(cache, trials):

    prestim_interval = list(np.random.uniform(33.333333, 2000, len(trials)-1))
    prestim_interval.insert(0, 2000)


    for order, trial in enumerate(trials):
        n.refresh()
        trial["Order"] = order+1
        trial["Time_Trial_Onset"] = datetime.datetime.now()

        # Wait
        trial["Prestimulus_Interval"] = int(prestim_interval[order])
        if testmode is False:
            trial["Prestimulus_Interval"] = n.time.wait(int(prestim_interval[order]))

        # Diplay stuff
        n.image(trial["Global_Color"] + "_" + trial["Global_Shape"], size=8, extension = ".png", cache = cache, path = "./Stimuli/", rotate=trial["Global_Angle"])
        n.image(trial["Local_Color"] + "_" + trial["Local_Shape"], size=8, extension = ".png", cache = cache, path = "./Stimuli/", rotate=trial["Local_Angle"])

        n.refresh()
        trial["Time_Stimulus_Onset"] = datetime.datetime.now()

        if testmode is False:
            answer, RT = n.response(time_max = 1750, allow=["DOWN", "RIGHT", "LEFT"])
            if answer == "Time_Max_Exceeded":
                answer = "NA"
        else:
            answer = np.random.choice(["DOWN", "RIGHT", "LEFT", "NA"])
            RT = np.random.uniform(100, 1750)
        trial["Response"] = answer
        trial["RT"] = RT


        n.newpage('grey', auto_refresh=False)


    return(trials)
def display_cue(side="RIGHT", conflict=False):
    if side == "RIGHT":
        if conflict is False:
            angle = 0
            angle_sides = 0
        elif conflict is True:
            angle = 0
            angle_sides = 180
    else:
        if conflict is False:
            angle = 180
            angle_sides = 180
        elif conflict is True:
            angle = 180
            angle_sides = 0

    n.image("assets/arrow_green.png",
            x=-2,
            y=6.5,
            size=1.75,
            rotate=angle_sides)
    n.image("assets/arrow_green.png",
            x=-1,
            y=6.5,
            size=1.75,
            rotate=angle_sides)
    n.image("assets/arrow_green.png", x=0, y=6.5, size=1.75, rotate=angle)
    n.image("assets/arrow_green.png",
            x=1,
            y=6.5,
            size=1.75,
            rotate=angle_sides)
    n.image("assets/arrow_green.png",
            x=2,
            y=6.5,
            size=1.75,
            rotate=angle_sides)
Пример #7
0
# -*- coding: utf-8 -*-
"""
Test suite.
Authors: Dominique Makowski
Copyright: The Neuropsydia Development Team
Site: https://github.com/neuropsychology/Neuropsydia.py
"""
import neuropsydia as n


n.start()

n.write("dupa")
n.refresh()
n.time.wait(100)
n.newpage()
n.image("img.jpg", fullscreen=True)
n.refresh()
n.time.wait(100)

n.close()

print("STATUS: PASSED.")
def PDM_response(parameters):
    pygame.mouse.set_visible(True)

    n.newpage("grey")
    pygame.draw.circle(n.screen, n.color("black"),
                       parameters["Mask_Corrdinates"], parameters["Mask_Size"],
                       0)

    angles = np.array([
        parameters["Angle"], parameters["Angle"] + 90,
        parameters["Angle"] + 180, parameters["Angle"] + 270
    ])
    angles[angles > 360] = angles[angles > 360] - 360
    angles = np.sort(angles)

    n.image(pyllusion_path + "arrow.png",
            x=1.5,
            y=-5,
            size=2,
            rotate=angles[0],
            scale_by="width")
    n.image(pyllusion_path + "arrow.png",
            x=-1.5,
            y=-5,
            size=2,
            rotate=angles[1],
            scale_by="width")
    n.image(pyllusion_path + "arrow.png",
            x=-1.5,
            y=-8,
            size=2,
            rotate=angles[2],
            scale_by="width")
    n.image(pyllusion_path + "arrow.png",
            x=1.5,
            y=-8,
            size=2,
            rotate=angles[3],
            scale_by="width")

    n.line(left_x=-10,
           left_y=-6.5,
           right_x=10,
           right_y=-6.5,
           line_color="black",
           thickness=2)
    n.line(left_x=0,
           left_y=-10,
           right_x=0,
           right_y=10,
           line_color="black",
           thickness=2)
    n.refresh()

    loop = True
    while loop == True:
        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                quit()
            x, y = pygame.mouse.get_pos()

            if pygame.mouse.get_pressed() == (1, 0, 0):
                loop = False

    x, y = n.Coordinates.from_pygame(x=x, y=y)
    if x < 0:
        if y < -6.5:
            response = angles[2]
            n.rectangle(x=-1.5,
                        y=-8,
                        width=3,
                        height=3,
                        fill_color="green",
                        thickness=2)
        else:
            response = angles[1]
            n.rectangle(x=-1.5,
                        y=-5,
                        width=3,
                        height=3,
                        fill_color="green",
                        thickness=2)
    else:
        if y < -6.5:
            response = angles[3]
            n.rectangle(x=1.5,
                        y=-8,
                        width=3,
                        height=3,
                        fill_color="green",
                        thickness=2)
        else:
            response = angles[0]
            n.rectangle(x=1.5,
                        y=-5,
                        width=3,
                        height=3,
                        fill_color="green",
                        thickness=2)

    n.image(pyllusion_path + "arrow.png",
            x=1.5,
            y=-5,
            size=2,
            rotate=angles[0],
            scale_by="width")
    n.image(pyllusion_path + "arrow.png",
            x=-1.5,
            y=-5,
            size=2,
            rotate=angles[1],
            scale_by="width")
    n.image(pyllusion_path + "arrow.png",
            x=-1.5,
            y=-8,
            size=2,
            rotate=angles[2],
            scale_by="width")
    n.image(pyllusion_path + "arrow.png",
            x=1.5,
            y=-8,
            size=2,
            rotate=angles[3],
            scale_by="width")

    n.line(left_x=-10,
           left_y=-6.5,
           right_x=10,
           right_y=-6.5,
           line_color="black",
           thickness=2)
    n.line(left_x=0,
           left_y=-10,
           right_x=0,
           right_y=10,
           line_color="black",
           thickness=2)

    pygame.draw.circle(n.screen, n.color("black"),
                       parameters["Mask_Corrdinates"], parameters["Mask_Size"],
                       0)
    #    n.write(str(response), color="white")
    n.refresh()
    n.time.wait(50)
    pygame.mouse.set_visible(False)
    return (response)
Пример #9
0
# -*- coding: utf-8 -*-
import neuropsydia as n

n.start()

n.write("Welcome", style="title")
name = n.ask("What is your name?", y=5)
n.write("Ok, " + name + ", here is a super cool cat.", y=3)
n.image("cat.png", size=3, y=-3.5)
n.refresh()
n.time.wait(2000)

n.close()
Пример #10
0
def TFM_response(parameters):
    pygame.mouse.set_visible(True)

    n.newpage("grey")
    pygame.draw.circle(
        n.screen,
        n.color("black"),
        parameters["Mask_Corrdinates"],
        parameters["Mask_Size"],
        0,
    )

    n.image(
        pyllusion_path + "arrow_grey.png",
        x=-1.7,
        y=-6.2,
        size=2,
        rotate=parameters["Angle"] + 180,
        scale_by="width",
    )
    n.image(
        pyllusion_path + "arrow_grey.png",
        x=-2.3,
        y=-5.8,
        size=2,
        rotate=parameters["Angle"] + 180,
        scale_by="width",
    )
    n.image(
        pyllusion_path + "arrow.png",
        x=-2,
        y=-6,
        size=3,
        rotate=parameters["Angle"],
        scale_by="width",
    )

    n.image(
        pyllusion_path + "arrow_grey.png",
        x=1.7,
        y=-6.2,
        size=2,
        rotate=parameters["Angle"],
        scale_by="width",
    )
    n.image(
        pyllusion_path + "arrow_grey.png",
        x=2.3,
        y=-5.8,
        size=2,
        rotate=parameters["Angle"],
        scale_by="width",
    )
    n.image(
        pyllusion_path + "arrow.png",
        x=2,
        y=-6,
        size=3,
        rotate=parameters["Angle"] + 180,
        scale_by="width",
    )

    n.line(left_x=0,
           left_y=-10,
           right_x=0,
           right_y=10,
           line_color="black",
           thickness=1)
    n.refresh()

    loop = True
    while loop == True:
        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                quit()
            x, y = pygame.mouse.get_pos()

            if pygame.mouse.get_pressed() == (1, 0, 0):
                loop = False

    x, y = n.Coordinates.from_pygame(x=x, y=y)
    if x < 0:
        response_side = "LEFT"
        response = parameters["Angle"]
        n.rectangle(x=-5, width=10, height=20, fill_color="green")
    else:
        response_side = "RIGHT"
        response = parameters["Angle"] + 180
        n.rectangle(x=5, width=10, height=20, fill_color="green")
    if response >= 360:
        response -= 360
    pygame.draw.circle(
        n.screen,
        n.color("black"),
        parameters["Mask_Corrdinates"],
        parameters["Mask_Size"],
        0,
    )
    #    n.write(str(response), color="white")
    n.refresh()
    n.time.wait(50)
    pygame.mouse.set_visible(False)
    return (response, response_side)
Пример #11
0
    stimulus_angle = np.random.choice([0, 180])  # select target orientation
    trial_type = np.random.choice(["Congruent", "Neutral",
                                   "Incongruent"])  # select trial type
    if trial_type == "Congruent":
        distractors_angle = stimulus_angle
    if trial_type == "Incongruent":
        if stimulus_angle == 0:
            distractors_angle = 180
        else:
            distractors_angle = 0
    if trial_type == "Neutral":
        distractors_angle = 90

    n.image("arrow-left.png",
            x=-5,
            size=2,
            cache=cache,
            rotate=distractors_angle)  # Distractor
    n.image("arrow-left.png",
            x=-2.5,
            size=2,
            cache=cache,
            rotate=distractors_angle)  # Distractor
    n.image("arrow-left.png", x=0, size=2, cache=cache,
            rotate=stimulus_angle)  # Target
    n.image("arrow-left.png",
            x=2.5,
            size=2,
            cache=cache,
            rotate=distractors_angle)  # Distractor
    n.image("arrow-left.png",
def display_fire(side="RIGHT"):
    if side == "RIGHT":
        n.image("assets/fire.png", x=0.65, y=-7.75)
    elif side == "LEFT":
        n.image("assets/fire.png", x=-0.65, y=-7.75)
def display_ship():
    n.image("assets/spaceship.png", x=0, y=-8, size=3)
def display_enemy(side="RIGHT", stop=False, allies=False):
    if side == "RIGHT":
        if allies is False:
            if stop is True:
                n.image("assets/enemy_stop.png", x=5, y=6.5, size=3)
            else:
                n.image("assets/enemy.png", x=5, y=6.5, size=3)
        if allies is True:
            n.image("assets/enemy.png", x=5, y=6.5, size=3)
            n.image("assets/enemy.png", x=-5, y=6.5, size=3)
    elif side == "LEFT":
        if allies is False:
            if stop is True:
                n.image("assets/enemy_stop.png", x=-5, y=6.5, size=3)
            else:
                n.image("assets/enemy.png", x=-5, y=6.5, size=3)
        if allies is True:
            n.image("assets/enemy.png", x=5, y=6.5, size=3)
            n.image("assets/enemy.png", x=-5, y=6.5, size=3)
Пример #15
0
# -*- coding: utf-8 -*-
"""
Test suite.
Authors: Dominique Makowski
Copyright: The Neuropsydia Development Team
Site: https://github.com/neuropsychology/Neuropsydia.py
"""
import neuropsydia as n

n.start()

n.write("dupa")
n.refresh()
n.time.wait(100)
n.newpage()
n.image("img.jpg", fullscreen=True)
n.refresh()
n.time.wait(100)

n.close()

print("STATUS: PASSED.")
Пример #16
0
def sequence(cache, response_selection="None", inhibition=False, conflict=False):



    # Sequence Preparation
    if response_selection == "None":
        trials = []
        for i in range(30):
            trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"circle",
"Global_Color":np.random.choice(["red", "yellow", "blue", "white"]),
"Global_Angle":0,
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue", "white"]),
"Local_Angle":np.random.choice([-90, 0, 90, 180]),
"Inhibition":False,
"Conflict":"Neutral",
"Response_Availability":True,
"Response_Correct":0
            }
            trials.append(trial)
    if response_selection == "Conditional":
        if conflict is False:
            if inhibition is False:
                trials = []
                correct_responses = {-90:-90, 0:0, 90:90, 180:"NA"}
                for i in range(30):
                    trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"circle",
"Global_Color":np.random.choice(["red", "yellow", "blue", "white"]),
"Global_Angle":0,
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue", "white"]),
"Local_Angle":np.random.choice([-90, 0, 90]),
"Inhibition":False,
"Conflict":"Neutral",
"Response_Availability":True
                    }
                    trial["Response_Correct"] = correct_responses[trial["Local_Angle"]]
                    trials.append(trial)
                for i in range(3):
                    trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"circle",
"Global_Color":np.random.choice(["red", "yellow", "blue", "white"]),
"Global_Angle":0,
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue", "white"]),
"Local_Angle":180,
"Inhibition":False,
"Conflict":"Neutral",
"Response_Availability":False,
"Response_Correct":"NA"
                    }
                    trials.append(trial)
                np.random.shuffle(trials)
            else:
                trials = []
                correct_responses = {-90:-90, 0:0, 90:90, 180:"NA"}
                for i in range(40):
                    trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"circle",
"Global_Color":np.random.choice(["red", "yellow", "blue"]),
"Global_Angle":0,
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":np.random.choice([-90, 0, 90]),
"Inhibition":False,
"Conflict":"Neutral",
"Response_Availability":True
                    }
                    trial["Response_Correct"] = correct_responses[trial["Local_Angle"]]
                    trials.append(trial)
                for i in range(3):
                    trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"circle",
"Global_Color":np.random.choice(["red", "yellow", "blue"]),
"Global_Angle":0,
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":180,
"Inhibition":False,
"Conflict":"Neutral",
"Response_Availability":False,
"Response_Correct":"NA"
                    }
                    trials.append(trial)
                for i in range(6):
                    trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"circle",
"Global_Color":"white",
"Global_Angle":0,
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":np.random.choice([-90, 0, 90]),
"Inhibition":True,
"Conflict":"Neutral",
"Response_Availability":True,
"Response_Correct":"NA"
                    }
                    trials.append(trial)
                for i in range(3):
                    trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"circle",
"Global_Color":"white",
"Global_Angle":0,
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":180,
"Inhibition":True,
"Conflict":"Neutral",
"Response_Availability":False,
"Response_Correct":"NA"
                    }
                    trials.append(trial)
                np.random.shuffle(trials)
        else:
            trials = []
            correct_responses = {-90:-90, 0:0, 90:90, 180:"NA"}
            for i in range(40):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":np.random.choice([-90, 0, 90]),
"Inhibition":False,
"Conflict":"Incongruent",
"Response_Availability":True
                }
                trial["Response_Correct"] = correct_responses[trial["Local_Angle"]]
                if trial["Local_Angle"] in [-90, 0]:
                    trial["Global_Angle"] = trial["Local_Angle"] + 180
                else:
                    trial["Global_Angle"] = trial["Local_Angle"] - 180
                trials.append(trial)
            for i in range(3):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":180,
"Inhibition":False,
"Conflict":"Incongruent",
"Response_Availability":False,
"Response_Correct":"NA"
                }
                if trial["Local_Angle"] in [-90, 0]:
                    trial["Global_Angle"] = trial["Local_Angle"] + 180
                else:
                    trial["Global_Angle"] = trial["Local_Angle"] - 180
                trials.append(trial)
            for i in range(6):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":"white",
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":np.random.choice([-90, 0, 90]),
"Inhibition":True,
"Conflict":"Incongruent",
"Response_Availability":True,
"Response_Correct":"NA"
                }
                if trial["Local_Angle"] in [-90, 0]:
                    trial["Global_Angle"] = trial["Local_Angle"] + 180
                else:
                    trial["Global_Angle"] = trial["Local_Angle"] - 180
                trials.append(trial)
            for i in range(3):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":"white",
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":180,
"Inhibition":True,
"Conflict":"Incongruent",
"Response_Availability":False,
"Response_Correct":"NA"
                }
                if trial["Local_Angle"] in [-90, 0]:
                    trial["Global_Angle"] = trial["Local_Angle"] + 180
                else:
                    trial["Global_Angle"] = trial["Local_Angle"] - 180
                trials.append(trial)
            np.random.shuffle(trials)
            for i in range(40):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":np.random.choice([-90, 0, 90]),
"Inhibition":False,
"Conflict":"Congruent",
"Response_Availability":True
                }
                trial["Response_Correct"] = correct_responses[trial["Local_Angle"]]
                trial["Global_Angle"] = trial["Local_Angle"]
                trials.append(trial)
            for i in range(3):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":180,
"Inhibition":False,
"Conflict":"Congruent",
"Response_Availability":False,
"Response_Correct":"NA"
                }
                trial["Global_Angle"] = trial["Local_Angle"]
                trials.append(trial)
            for i in range(6):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":"white",
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":np.random.choice([-90, 0, 90]),
"Inhibition":True,
"Conflict":"Congruent",
"Response_Availability":True,
"Response_Correct":"NA"
                }
                trial["Global_Angle"] = trial["Local_Angle"]
                trials.append(trial)
            for i in range(3):
                trial = {
"Condition_Response_Selection":response_selection,
"Condition_Inhibition":inhibition,
"Condition_Conflict":conflict,
"Global_Shape":"global",
"Global_Color":"white",
"Local_Shape":"local",
"Local_Color":np.random.choice(["red", "yellow", "blue"]),
"Local_Angle":180,
"Inhibition":True,
"Conflict":"Congruent",
"Response_Availability":False,
"Response_Correct":"NA"
                }
                trial["Global_Angle"] = trial["Local_Angle"]
                trials.append(trial)
            np.random.shuffle(trials)



    # Instructions
    n.newpage("white")
    n.write("Instructions", style="bold", y=8, size=1.5)

    if inhibition is False:
        instr_angles = [-90 , 0, 90, 180]
        instr_glob_angles = [-90 , 0, -90, 0]
        instr_glob_color = ["blue", "yellow", "white", "red"]
        instr_loc_color = ["red", "blue", "red", "yellow"]
        instr_responses = ["arrow", "arrow", "arrow", "cross"]
    else:
        instr_angles = [-90 , 0, 90, 180, -90]
        instr_glob_angles = [-90 , 0, -90, 0, -90]
        instr_glob_color = ["blue", "yellow", "red", "blue", "white"]
        instr_loc_color = ["red", "red", "blue", "yellow", "red"]
        instr_responses = ["arrow", "arrow", "arrow", "cross", "cross"]
    if conflict is True:
        instr_shapes = "_global"
    else:
        instr_shapes = "_circle"
    if response_selection == "None":
        intr_resp_angles = [0, 0, 0, 0, 0]
        instr_responses = ["arrow", "arrow", "arrow", "arrow"]
    if response_selection == "Conditional":
        intr_resp_angles = [-90 , 0, 90, 0, 0]

    x = -7.5
    for pos, angle in enumerate(instr_angles):
        n.image(instr_glob_color[pos] + instr_shapes, size=6, y=1, x = x+pos*3.75, extension = ".png", path = "./Stimuli/", rotate=instr_glob_angles[pos])
        n.image(instr_loc_color[pos] + "_local", size=6, y=1, x = x+pos*3.75, extension = ".png", path = "./Stimuli/", rotate=angle)
        n.image(instr_responses[pos], size=2.75, y=-5.5, x = x+pos*3.75, extension = ".png", path = "./Stimuli/", rotate=intr_resp_angles[pos])

    n.refresh()
    n.write("Appuyez sur ENTRER pour commencer.", style="end")
    n.newpage('grey', auto_refresh=False)



    # Run trials
    data = run_trials(cache, trials)
    df = statistics(data)

    return(df)
Пример #17
0
# =============================================================================
n.start()

participant = n.ask("ID: ")

n.instructions(
    "In this task, you will be presented with different images and your task is to rate how intense your feeling is when you see the images."
)

fixation_cross(3000)

for i in range(60):  # Number of trials
    n.newpage("grey", auto_refresh=False)
    random_image = random.choice(
        [x for x in list_stimuli if os.path.isfile(os.path.join(path, x))])
    n.image("images/" + random_image, size=20, y=0)
    trigger.start()
    n.refresh()
    n.time.wait(3000)
    list_stimuli.remove(random_image)
    random_image = random_image.split(".")[0]
    stimuli.append(random_image)

    fixation_cross(5000)

    n.newpage("grey", auto_refresh=False)
    trigger.stop()
    response_arousal = n.scale(title="Your emotion was:",
                               y=3,
                               line_length=10,
                               edges=[1, 9],