from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import string import random import numpy as np import collections import pandas as pd author = 'Michael Rojek-Giffin' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'my_GoNoGo' players_per_group = None # N = 2 # these parameters are from Kale et al., 2007 num_rounds = 48 N_stream = ('B', 'F', 'K', 'H', 'M', 'Q', 'R', 'X') class Subsession(BaseSubsession): pass ## This is where I create the array for the go no go, it's just a random shuffle N_target = np.repeat(Constants.N_stream, 6, axis=0) random.shuffle(N_target) # class Group(BaseGroup): pass class Player(BasePlayer): N_answer = models.BooleanField() N_correct = models.CharField() N_now = models.CharField() gender = models.CharField( choices = ["meisje", "jongen"], widget = widgets.RadioSelect() ) age = models.IntegerField( choices = range(5, 30), widget=widgets.RadioSelect() ) # N_back = models.CharField() N_target = models.CharField() N_count = models.IntegerField() def N_now_now(self): self.N_now = N_target[(self.round_number-1)] def N_correct_giver(self): if self.N_now == "X" and self.N_answer == True: self.N_correct = 'Incorrect_Go' elif self.N_now != "X" and self.N_answer == True: self.N_correct = 'Correct_Go' # elif self.N_now != "X" and self.N_answer == False: # self.N_correct = 'Correct_reject' # elif self.N_now == "X" and self.N_answer == False: # self.N_correct = 'Incorrect_reject'