from otree.api import * author = 'Niklas Weller' doc = """ 2D Packing Problem - Experiment """ class Constants(BaseConstants): name_in_url = 'best_scores' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): x1 = models.IntegerField() y1 = models.IntegerField() x2 = models.IntegerField() y2 = models.IntegerField() x3 = models.IntegerField() y3 = models.IntegerField() x4 = models.IntegerField() y4 = models.IntegerField() x5 = models.IntegerField() y5 = models.IntegerField() x6 = models.IntegerField() y6 = models.IntegerField() x7 = models.IntegerField() y7 = models.IntegerField() x8 = models.IntegerField() y8 = models.IntegerField() x9 = models.IntegerField() y9 = models.IntegerField() x10 = models.IntegerField() y10 = models.IntegerField() x11 = models.IntegerField() y11 = models.IntegerField() x12 = models.IntegerField() y12 = models.IntegerField() x13 = models.IntegerField() y13 = models.IntegerField() x14 = models.IntegerField() y14 = models.IntegerField() x15 = models.IntegerField() y15 = models.IntegerField() seq1 = models.StringField() seq2 = models.StringField() seq3 = models.StringField() seq4 = models.StringField() seq5 = models.StringField() seq6 = models.StringField() seq7 = models.StringField() seq8 = models.StringField() seq9 = models.StringField() seq10 = models.StringField() seq11 = models.StringField() seq12 = models.StringField() seq13 = models.StringField() seq14 = models.StringField() seq15 = models.StringField() highestPoint = models.IntegerField() aRotationCounter = models.IntegerField() bx1 = models.IntegerField() by1 = models.IntegerField() bx2 = models.IntegerField() by2 = models.IntegerField() bx3 = models.IntegerField() by3 = models.IntegerField() bx4 = models.IntegerField() by4 = models.IntegerField() bx5 = models.IntegerField() by5 = models.IntegerField() bx6 = models.IntegerField() by6 = models.IntegerField() bx7 = models.IntegerField() by7 = models.IntegerField() bx8 = models.IntegerField() by8 = models.IntegerField() bx9 = models.IntegerField() by9 = models.IntegerField() bx10 = models.IntegerField() by10 = models.IntegerField() bx11 = models.IntegerField() by11 = models.IntegerField() bx12 = models.IntegerField() by12 = models.IntegerField() bx13 = models.IntegerField() by13 = models.IntegerField() bx14 = models.IntegerField() by14 = models.IntegerField() bx15 = models.IntegerField() by15 = models.IntegerField() bseq1 = models.StringField() bseq2 = models.StringField() bseq3 = models.StringField() bseq4 = models.StringField() bseq5 = models.StringField() bseq6 = models.StringField() bseq7 = models.StringField() bseq8 = models.StringField() bseq9 = models.StringField() bseq10 = models.StringField() bseq11 = models.StringField() bseq12 = models.StringField() bseq13 = models.StringField() bseq14 = models.StringField() bseq15 = models.StringField() bHighestPoint = models.IntegerField() bRotationCounter = models.IntegerField() cx1 = models.IntegerField() cy1 = models.IntegerField() cx2 = models.IntegerField() cy2 = models.IntegerField() cx3 = models.IntegerField() cy3 = models.IntegerField() cx4 = models.IntegerField() cy4 = models.IntegerField() cx5 = models.IntegerField() cy5 = models.IntegerField() cx6 = models.IntegerField() cy6 = models.IntegerField() cx7 = models.IntegerField() cy7 = models.IntegerField() cx8 = models.IntegerField() cy8 = models.IntegerField() cx9 = models.IntegerField() cy9 = models.IntegerField() cx10 = models.IntegerField() cy10 = models.IntegerField() cx11 = models.IntegerField() cy11 = models.IntegerField() cx12 = models.IntegerField() cy12 = models.IntegerField() cx13 = models.IntegerField() cy13 = models.IntegerField() cx14 = models.IntegerField() cy14 = models.IntegerField() cx15 = models.IntegerField() cy15 = models.IntegerField() cseq1 = models.StringField() cseq2 = models.StringField() cseq3 = models.StringField() cseq4 = models.StringField() cseq5 = models.StringField() cseq6 = models.StringField() cseq7 = models.StringField() cseq8 = models.StringField() cseq9 = models.StringField() cseq10 = models.StringField() cseq11 = models.StringField() cseq12 = models.StringField() cseq13 = models.StringField() cseq14 = models.StringField() cseq15 = models.StringField() cHighestPoint = models.IntegerField() cRotationCounter = models.IntegerField() dx1 = models.IntegerField() dy1 = models.IntegerField() dx2 = models.IntegerField() dy2 = models.IntegerField() dx3 = models.IntegerField() dy3 = models.IntegerField() dx4 = models.IntegerField() dy4 = models.IntegerField() dx5 = models.IntegerField() dy5 = models.IntegerField() dx6 = models.IntegerField() dy6 = models.IntegerField() dx7 = models.IntegerField() dy7 = models.IntegerField() dx8 = models.IntegerField() dy8 = models.IntegerField() dx9 = models.IntegerField() dy9 = models.IntegerField() dx10 = models.IntegerField() dy10 = models.IntegerField() dx11 = models.IntegerField() dy11 = models.IntegerField() dx12 = models.IntegerField() dy12 = models.IntegerField() dx13 = models.IntegerField() dy13 = models.IntegerField() dx14 = models.IntegerField() dy14 = models.IntegerField() dx15 = models.IntegerField() dy15 = models.IntegerField() dseq1 = models.StringField() dseq2 = models.StringField() dseq3 = models.StringField() dseq4 = models.StringField() dseq5 = models.StringField() dseq6 = models.StringField() dseq7 = models.StringField() dseq8 = models.StringField() dseq9 = models.StringField() dseq10 = models.StringField() dseq11 = models.StringField() dseq12 = models.StringField() dseq13 = models.StringField() dseq14 = models.StringField() dseq15 = models.StringField() dHighestPoint = models.IntegerField() dRotationCounter = models.IntegerField() # FUNCTIONS # PAGES class Intro(Page): pass class Quiz(Page): form_model = 'player' form_fields = ['goal', 'numberOfRounds', 'rotationAllowed', 'move'] class PageA(Page): form_model = 'player' form_fields = [ 'x1', 'y1', 'x2', 'y2', 'x3', 'y3', 'x4', 'y4', 'x5', 'y5', 'x6', 'y6', 'x7', 'y7', 'x8', 'y8', 'x9', 'y9', 'x10', 'y10', 'x11', 'y11', 'x12', 'y12', 'x13', 'y13', 'x14', 'y14', 'x15', 'y15', 'seq1', 'seq2', 'seq3', 'seq4', 'seq5', 'seq6', 'seq7', 'seq8', 'seq9', 'seq10', 'seq11', 'seq12', 'seq13', 'seq14', 'seq15', 'highestPoint', 'aRotationCounter', ] class PageB(Page): form_model = 'player' form_fields = [ 'bx1', 'by1', 'bx2', 'by2', 'bx3', 'by3', 'bx4', 'by4', 'bx5', 'by5', 'bx6', 'by6', 'bx7', 'by7', 'bx8', 'by8', 'bx9', 'by9', 'bx10', 'by10', 'bx11', 'by11', 'bx12', 'by12', 'bx13', 'by13', 'bx14', 'by14', 'bx15', 'by15', 'bseq1', 'bseq2', 'bseq3', 'bseq4', 'bseq5', 'bseq6', 'bseq7', 'bseq8', 'bseq9', 'bseq10', 'bseq11', 'bseq12', 'bseq13', 'bseq14', 'bseq15', 'bHighestPoint', 'bRotationCounter', ] class PageC(Page): form_model = 'player' form_fields = [ 'cx1', 'cy1', 'cx2', 'cy2', 'cx3', 'cy3', 'cx4', 'cy4', 'cx5', 'cy5', 'cx6', 'cy6', 'cx7', 'cy7', 'cx8', 'cy8', 'cx9', 'cy9', 'cx10', 'cy10', 'cx11', 'cy11', 'cx12', 'cy12', 'cx13', 'cy13', 'cx14', 'cy14', 'cx15', 'cy15', 'cseq1', 'cseq2', 'cseq3', 'cseq4', 'cseq5', 'cseq6', 'cseq7', 'cseq8', 'cseq9', 'cseq10', 'cseq11', 'cseq12', 'cseq13', 'cseq14', 'cseq15', 'cHighestPoint', 'cRotationCounter', ] class PageD(Page): form_model = 'player' form_fields = [ 'dx1', 'dy1', 'dx2', 'dy2', 'dx3', 'dy3', 'dx4', 'dy4', 'dx5', 'dy5', 'dx6', 'dy6', 'dx7', 'dy7', 'dx8', 'dy8', 'dx9', 'dy9', 'dx10', 'dy10', 'dx11', 'dy11', 'dx12', 'dy12', 'dx13', 'dy13', 'dx14', 'dy14', 'dx15', 'dy15', 'dseq1', 'dseq2', 'dseq3', 'dseq4', 'dseq5', 'dseq6', 'dseq7', 'dseq8', 'dseq9', 'dseq10', 'dseq11', 'dseq12', 'dseq13', 'dseq14', 'dseq15', 'dHighestPoint', 'dRotationCounter', ] class Results(Page): pass page_sequence = [ # PageA, PageB, PageC, # PageD, Results, ]