from otree.api import * from Verbal import Verbal from Math import Math, randomMathTable from Emotion import Emotion, imgTable import numpy.random as random from random import sample, choices from sklearn.feature_extraction.text import TfidfVectorizer import glob import numpy as np doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'allTasks' PLAYERS_PER_GROUP = None NUM_ROUNDS = 10 list = glob.glob('_static/visual/*.JPG') lImg = [x.replace('_static/visual\\','visual/') for x in list] class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): # General Vars dRT = models.FloatField() sTask = models.StringField() # Math Vars dAns1 = models.FloatField() dAns2 = models.FloatField() dOutcome = models.FloatField() dResult = models.FloatField() sTableM = models.StringField() sOperator = models.StringField() # Emotion Vars sTableE = models.LongStringField() sEmotion = models.StringField() sChoices = models.LongStringField() iCorrect = models.IntegerField() # Verbal Vars sAns = models.LongStringField() dSim = models.FloatField() dBaseSim = models.FloatField() iDSpace = models.IntegerField() # FUNCTIONS def creating_session(subsession): if subsession.round_number ==1: for player in subsession.get_players(): player.participant.lTask = choices(['Math','Verbal','Emotion'],k=C.NUM_ROUNDS) print(player.participant.lTask[1]) for player in subsession.get_players(): # General Setup iK = int(player.round_number - 1) player.sTask = player.participant.lTask[iK] # Math Setup player.sOperator = op = random.choice(['+','-','tim']) player.dOutcome = out = random.randint(1,100) player.sTableM = randomMathTable(np.floor(out), op) # Verbal Setup # Emotion Setup player.sEmotion = sEmotion = random.choice(['smiling','angry','sad']) player.sTableE = imgTable(sEmotion) # PAGES class Between(Page): template_name = 'global/Between.html' page_sequence = [Between, Math, Verbal, Emotion]