Exemplo n.º 1
0
    def pick_self(self, state, pad):
        if self.selected:
            self.lastState = state
            pad.release_button(p3.pad.Button.A)

        else:
            # Go to yoshi and press A
            target_x = 4.5
            target_y = 18.5
            # >>> choose fox >>>
            # target_x = -23.5
            # target_y = 11.5
            # <<< choose fox <<<

            dx = target_x - state.players[2].cursor_x
            dy = target_y - state.players[2].cursor_y
            mag = math.sqrt(dx * dx + dy * dy)

            if mag < 1.3:
                pad.press_button(p3.pad.Button.A)
                self.selected = True
                pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
            else:
                pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                               0.5 * (dy / mag) + 0.5)
Exemplo n.º 2
0
 def train(self, state, pad, MEM, DQN):
     if self.cpu_setter == 10:
         pad.release_button(p3.pad.Button.START)
         self.cpu_setter += 1
     elif self.cpu_setter == 9:
         DQN.update_weights(MEM.sample(50))
         pad.press_button(p3.pad.Button.START)
         self.cpu_setter += 1
Exemplo n.º 3
0
 def pick_marth(self, state, pad):
     if self.cpu_setter == 1:
         pad.release_button(p3.pad.Button.A)
         self.cpu_setter += 1
         self.marth_picked = True
     else:
         self.move_to(state, pad, 11, 4)
         if self.in_place:
             pad.press_button(p3.pad.Button.A)
             self.cpu_setter += 1
             self.in_place = False
Exemplo n.º 4
0
 def restart(self, state, pad):
     state.players[1].percent = 0
     state.players[2].percent = 0
     pad.reset()
     pad.press_button(Button.L)
     pad.press_button(Button.R)
     pad.press_button(Button.A)
     pad.press_button(Button.B)
     for x in range(0, 30000):
         pad.press_button(Button.START)
         pad.release_button(Button.START)
     pad.reset()
Exemplo n.º 5
0
def make_action(state, pad, mm, fox):
    if state.menu == p3.state.Menu.Game:
        pad.release_button(p3.pad.Button.START)
        if fox.advance(state, pad, mm) == c.game['n_agents']:
            pad.reset()
            return False
    elif state.menu == p3.state.Menu.Characters:
        mm.pick_falcon(state, pad)
        print(state.players[1].character)
    elif state.menu == p3.state.Menu.Stages:
        mm.press_start_lots(state, pad)
    elif state.menu == p3.state.Menu.PostGame:
        mm.press_start_lots(state, pad)
    return True
Exemplo n.º 6
0
 def pick_self(self, state, pad):
     if self.selected:
         self.lastState = state
         pad.release_button(p3.pad.Button.A)
     else:
         # Go to falco and press A
         target_x = -29.5
         target_y = 11.5
         moved = self.move_stick(state, pad, target_x, target_y)
         if moved:
             pad.press_button(p3.pad.Button.A)
             self.selected = True
             # the sleep is so that the inputs don't get sent at the same time in which case the reset overrides the button press
             time.sleep(.02)
             pad.reset()
Exemplo n.º 7
0
    def set_bot_level(self, state, pad, level=9):
        if self.bot_level_set:
            self.lastState = state
            pad.release_button(p3.pad.Button.A)
        else:
            target_x = 0.0
            target_y = 0.0
            if not self.active:
                # move cursor above player row to activate p2
                target_x = -15.0
                target_y = 1.5
                moved = self.move_stick(state, pad, target_x, target_y)
                if moved:
                    pad.reset()
                    self.active = True

            elif not self.is_bot:
                target_x = -30.0
                target_y = -2.2
                moved = self.move_stick(state, pad, target_x, target_y)
                if moved:
                    pad.press_button(p3.pad.Button.A)
                    time.sleep(0.05)
                    pad.reset()
                    self.is_bot = True

            elif not self.bot_level_selected:
                # Go to bot level and press A
                target_x = -30.9
                target_y = -15.12
                moved = self.move_stick(state, pad, target_x, target_y)
                if moved:
                    pad.press_button(p3.pad.Button.A)
                    time.sleep(0.05)
                    # pad.release_button(p3.pad.Button.A)
                    pad.reset()
                    self.bot_level_selected = True

            elif not self.bot_level_set:
                target_x = -31.9 + float(level)*1.1
                target_y = -15.12
                moved = self.move_stick(state, pad, target_x, target_y)
                if moved:
                    pad.press_button(p3.pad.Button.A)
                    time.sleep(.02)
                    pad.reset()
                    self.bot_level_set = True
 def drag_to_9(self, state, pad):
     if self.dragged_to_9:
         pad.release_button(p3.pad.Button.A)
         pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
         self.get_settings(state, pad)
     else:
         target_x = -7.0
         target_y = -15.0
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < .5:
             pad.press_button(p3.pad.Button.A)
             self.dragged_to_9 = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
 def pick_cpu(self, state, pad):
     if self.selected_cpu:
         pad.release_button(p3.pad.Button.A)
         pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
         self.pick_cpu_level_9(state, pad)
     else:
         target_x = -16.0
         target_y = -2
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < .5:
             pad.press_button(p3.pad.Button.A)
             self.selected_cpu = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
Exemplo n.º 10
0
 def pick_itachi(self, state, pad):
     if self.selected_itachi:
         # Release buttons
         pad.release_button(p3.pad.Button.A)
     else:
         # Go to itachi and press A
         target_x = -23.5
         target_y = 11.5
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 0.3:
             pad.press_button(p3.pad.Button.A)
             self.selected_itachi = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
Exemplo n.º 11
0
 def set_rules(self, state, pad):
     if self.rules_set:
         pad.release_button(p3.pad.Button.B)
         return True
     if self.entered_menu:
         pad.release_button(p3.pad.Button.A)
         if self.menu_count == 0:
             pad.tilt_stick(p3.pad.Stick.MAIN, .5, 0)
         if self.menu_count == 1:
             pad.tilt_stick(p3.pad.Stick.MAIN, .5, .5)
         if self.menu_count == 2:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0, .5)
         if self.menu_count == 3:
             pad.tilt_stick(p3.pad.Stick.MAIN, .5, .5)
         if self.menu_count == 4:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0, .5)
         if self.menu_count == 5:
             pad.tilt_stick(p3.pad.Stick.MAIN, .5, .5)
         if self.menu_count == 6:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0, .5)
         if self.menu_count == 7:
             pad.tilt_stick(p3.pad.Stick.MAIN, .5, .5)
         if self.menu_count == 8:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0, .5)
         if self.menu_count == 9:
             pad.tilt_stick(p3.pad.Stick.MAIN, .5, .5)
         if self.menu_count == 10:
             pad.press_button(p3.pad.Button.B)
             self.rules_set = True
         if state.frame % 30 == 0:
             self.menu_count += 1
         return False
     else:
         # Go to cpu and press A
         target_x = -15.5
         target_y = 22
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 0.35:
             pad.press_button(p3.pad.Button.A)
             self.entered_menu = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
         return False
 def get_settings(self, state, pad):
     if self.selected_settings:
         pad.release_button(p3.pad.Button.A)
         pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
         self.change_settings(state, pad)
     else:
         target_x = 0.0
         target_y = 30.0
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 5.1:
             pad.press_button(p3.pad.Button.A)
             self.selected_settings = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
Exemplo n.º 13
0
 def char_setup(self, state, pad):
     if not self.marth_picked:
         self.pick_marth(state, pad)
     else:
         if not self.cpu_selected:
             self.select_cpu(state, pad)
         else:
             if not self.diff_set:
                 self.set_diff(state, pad)
             else:
                 # for some reason, won't press final START
                 # ALSO, dk where cursor is in memory for stage select
                 pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
                 if self.start:
                     pad.release_button(p3.pad.Button.START)
                 else:
                     pad.press_button(p3.pad.Button.START)
                     self.start = True
 def pick_falco(self, state, pad):
     if self.selected_falco:
         pad.release_button(p3.pad.Button.A)
         pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
         self.pick_cpu(state, pad)
     else:
         # Go to falco and press A
         target_x = -30
         target_y = 11.5
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 0.5:
             pad.press_button(p3.pad.Button.A)
             self.selected_falco = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
Exemplo n.º 15
0
 def set_diff(self, state, pad):
     if self.cpu_setter == 9:
         pad.release_button(p3.pad.Button.A)
         self.cpu_setter += 1
         self.diff_set = True
     elif self.cpu_setter == 8:
         pad.release_button(p3.pad.Button.A)
         self.move_to(state, pad, -21, -15)
         if self.in_place:
             pad.press_button(p3.pad.Button.A)
             self.cpu_setter += 1
             self.in_place = False
     elif self.cpu_setter == 7:
         self.move_to(state, pad, -30, -15, 0.6)
         if self.in_place:
             pad.press_button(p3.pad.Button.A)
             self.cpu_setter += 1
             self.in_place = False
Exemplo n.º 16
0
 def select_cpu(self, state, pad):
     if self.cpu_setter == 6:
         pad.release_button(p3.pad.Button.A)
         self.cpu_setter += 1
         self.cpu_selected = True
     elif self.cpu_setter == 5:
         pad.press_button(p3.pad.Button.A)
         self.cpu_setter += 1
     elif self.cpu_setter == 4:
         pad.release_button(p3.pad.Button.A)
         self.cpu_setter += 1
     elif self.cpu_setter == 3:
         pad.press_button(p3.pad.Button.A)
         self.cpu_setter += 1
     elif self.cpu_setter == 2:
         self.move_to(state, pad, -30, -2, 0.4)
         if self.in_place:
             self.cpu_setter += 1
             self.in_place = False
Exemplo n.º 17
0
 def pick_fox(self, state, pad):
     if self.selected:
         # Release buttons and lazilly rotate the c stick.
         pad.release_button(p3.pad.Button.A)
         pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
         angle = (state.frame % 240) / 240.0 * 2 * math.pi
         pad.tilt_stick(p3.pad.Stick.C, 0.4 * math.cos(angle) + 0.5, 0.4 * math.sin(angle) + 0.5)
     else:
         # Go to fox and press A
         target_x = -23.5
         target_y = 11.5
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 0.3:
             pad.press_button(p3.pad.Button.A)
             self.selected = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5, 0.5 * (dy / mag) + 0.5)
Exemplo n.º 18
0
 def pick_fox(self, state, pad):
     if self.selected_fox:
         pad.tilt_stick(p3.pad.Stick.MAIN, .5, .5)
         pad.release_button(p3.pad.Button.A)
         return True
     else:
         # Go to fox and press A
         target_x = -23.5
         target_y = 11.5
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 1:
             pad.press_button(p3.pad.Button.A)
             self.selected_fox = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
         return False
Exemplo n.º 19
0
 def pick_fox(self, state, pad):
     if self.selected_fox:
         # Release buttons and lazilly rotate the c stick.
         pad.release_button(p3.pad.Button.A)
         pad.tilt_stick(p3.pad.Stick.MAIN, 0.5, 0.5)
         angle = (state.frame % 240) / 240.0 * 2 * math.pi
         pad.tilt_stick(p3.pad.Stick.C, 0.4 * math.cos(angle) + 0.5, 0.4 * math.sin(angle) + 0.5)
     else:
         # Go to fox and press A
         target_x = -23.5
         target_y = 11.5
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 0.3:
             pad.press_button(p3.pad.Button.A)
             self.selected_fox = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5, 0.5 * (dy / mag) + 0.5)
Exemplo n.º 20
0
 def pick_cpu(self, state, pad):
     if self.setup_cpu:
         return True
     if self.selected_cpu:
         # Release buttons and lazilly rotate the c stick.
         pad.release_button(p3.pad.Button.A)
         self.setup_cpu = True
         return False
     else:
         # Go to cpu and press A
         target_x = -15.5
         target_y = -4.0
         dx = target_x - state.players[2].cursor_x
         dy = target_y - state.players[2].cursor_y
         mag = math.sqrt(dx * dx + dy * dy)
         if mag < 0.35:
             pad.press_button(p3.pad.Button.A)
             self.selected_cpu = True
         else:
             pad.tilt_stick(p3.pad.Stick.MAIN, 0.5 * (dx / mag) + 0.5,
                            0.5 * (dy / mag) + 0.5)
         return False
Exemplo n.º 21
0
    def execute(self, actions):
        pad_path = self.dolphin_dir + '/Pipes/p3'
        with p3.pad.Pad(pad_path) as pad:
            for action in actions:
                if action == 'MR':
                    pad.tilt_stick(p3.pad.Stick.MAIN, .5, .5)
                elif action == 'MN':
                    pad.tilt_stick(p3.pad.Stick.MAIN, .5, 1)
                elif action == 'MNW':
                    pad.tilt_stick(p3.pad.Stick.MAIN, 1, 1)
                elif action == 'MW':
                    pad.tilt_stick(p3.pad.Stick.MAIN, 1, .5)
                elif action == 'MSW':
                    pad.tilt_stick(p3.pad.Stick.MAIN, 1, 0)
                elif action == 'MS':
                    pad.tilt_stick(p3.pad.Stick.MAIN, .5, 0)
                elif action == 'MSE':
                    pad.tilt_stick(p3.pad.Stick.MAIN, 0, 0)
                elif action == 'ME':
                    pad.tilt_stick(p3.pad.Stick.MAIN, 0, .5)
                elif action == 'MNE':
                    pad.tilt_stick(p3.pad.Stick.MAIN, 0, 1)

                if action == 'CR':
                    pad.tilt_stick(p3.pad.Stick.C, .5, .5)
                elif action == 'CN':
                    pad.tilt_stick(p3.pad.Stick.C, .5, 1)
                elif action == 'CNW':
                    pad.tilt_stick(p3.pad.Stick.C, 1, 1)
                elif action == 'CW':
                    pad.tilt_stick(p3.pad.Stick.C, 1, .5)
                elif action == 'CSW':
                    pad.tilt_stick(p3.pad.Stick.C, 1, 0)
                elif action == 'CS':
                    pad.tilt_stick(p3.pad.Stick.C, .5, 0)
                elif action == 'CSE':
                    pad.tilt_stick(p3.pad.Stick.C, 0, 0)
                elif action == 'CE':
                    pad.tilt_stick(p3.pad.Stick.C, 0, .5)
                elif action == 'CNE':
                    pad.tilt_stick(p3.pad.Stick.C, 0, 1)

                if action == 'PA':
                    pad.press_button(p3.pad.Button.A)
                elif action == 'RA':
                    pad.release_button(p3.pad.Button.A)

                if action == 'PB':
                    pad.press_button(p3.pad.Button.B)
                elif action == 'RB':
                    pad.release_button(p3.pad.Button.B)

                if action == 'PY':
                    pad.press_button(p3.pad.Button.Y)
                elif action == 'RY':
                    pad.release_button(p3.pad.Button.Y)

                if action == 'PZ':
                    pad.press_button(p3.pad.Button.Z)
                elif action == 'RZ':
                    pad.release_button(p3.pad.Button.Z)
Exemplo n.º 22
0
 def press_start_lots(self, state, pad):
     if state.frame % 2 == 0:
         pad.press_button(p3.pad.Button.START)
     else:
         pad.release_button(p3.pad.Button.START)
 def change_settings(self, state, pad):
     if self.changed_settings:
         pad.reset()
         self.press_start_lots(state, pad)
     else:
         if state.frame % 440 == 0:
             pad.press_button(p3.pad.Button.D_LEFT)
         elif state.frame % 442 == 0:
             pad.release_button(p3.pad.Button.D_LEFT)
         elif state.frame % 444 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 446 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 448 == 0:
             pad.press_button(p3.pad.Button.D_LEFT)
         elif state.frame % 450 == 0:
             pad.release_button(p3.pad.Button.D_LEFT)
         elif state.frame % 455 == 0:
             pad.press_button(p3.pad.Button.D_LEFT)
         elif state.frame % 460 == 0:
             pad.release_button(p3.pad.Button.D_LEFT)
         elif state.frame % 465 == 0:
             pad.press_button(p3.pad.Button.D_UP)
         elif state.frame % 470 == 0:
             pad.release_button(p3.pad.Button.D_UP)
         elif state.frame % 475 == 0:
             pad.press_button(p3.pad.Button.D_UP)
         elif state.frame % 480 == 0:
             pad.release_button(p3.pad.Button.D_UP)
         elif state.frame % 485 == 0:
             pad.press_button(p3.pad.Button.A)
         elif state.frame % 490 == 0:
             pad.release_button(p3.pad.Button.A)
         elif state.frame % 495 == 0:
             pad.press_button(p3.pad.Button.D_UP)
         elif state.frame % 500 == 0:
             pad.release_button(p3.pad.Button.D_UP)
         elif state.frame % 505 == 0:
             pad.press_button(p3.pad.Button.A)
         elif state.frame % 510 == 0:
             pad.release_button(p3.pad.Button.A)
         elif state.frame % 515 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 520 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 525 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 530 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 535 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 540 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 545 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 550 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 555 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 560 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 565 == 0:
             pad.press_button(p3.pad.Button.A)
         elif state.frame % 570 == 0:
             pad.release_button(p3.pad.Button.A)
         elif state.frame % 575 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 580 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 585 == 0:
             pad.press_button(p3.pad.Button.A)
         elif state.frame % 590 == 0:
             pad.release_button(p3.pad.Button.A)
         elif state.frame % 595 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 600 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 605 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 610 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 615 == 0:
             pad.press_button(p3.pad.Button.A)
         elif state.frame % 620 == 0:
             pad.release_button(p3.pad.Button.A)
         elif state.frame % 625 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 630 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 635 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 640 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 645 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 650 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 655 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 660 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 665 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 670 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 675 == 0:
             pad.press_button(p3.pad.Button.A)
         elif state.frame % 680 == 0:
             pad.release_button(p3.pad.Button.A)
         elif state.frame % 685 == 0:
             pad.press_button(p3.pad.Button.D_DOWN)
         elif state.frame % 690 == 0:
             pad.release_button(p3.pad.Button.D_DOWN)
         elif state.frame % 695 == 0:
             pad.press_button(p3.pad.Button.A)
         elif state.frame % 700 == 0:
             pad.release_button(p3.pad.Button.A)
         elif state.frame % 705 == 0:
             pad.press_button(p3.pad.Button.B)
         elif state.frame % 710 == 0:
             pad.release_button(p3.pad.Button.B)
         elif state.frame % 715 == 0:
             pad.press_button(p3.pad.Button.B)
         elif state.frame % 720 == 0:
             pad.release_button(p3.pad.Button.B)
         elif state.frame % 725 == 0:
             pad.press_button(p3.pad.Button.B)
         elif state.frame % 730 == 0:
             pad.release_button(p3.pad.Button.B)
             self.changed_settings = True
 def press_start_lots(self, state, pad):
     if state.frame % 2 == 0:
         pad.press_button(p3.pad.Button.START)
     else:
         pad.release_button(p3.pad.Button.START)