def loop():
    global level, mode, left_hand_sequence, right_hand_sequence
    if level == 1:
        set_as_buttons()
    if level == 11 and mode == 'both':
        set_as_leds()
        reset_leds()
        set_as_buttons()
    if mode == 'both':
        check_both_hands_sequence()
    elif mode == "left":
        check_left_hand_sequence()
    elif mode == 'right':
        check_right_hand_sequence()
    if level > MAX_LEVEL:
        level = 1
        set_as_leds()
        reset_leds()
        set_as_buttons()
        if mode == 'both':
            mode = 'done'
        elif mode == 'left':
            mode = 'right'
        elif mode == 'right':
            left_hand_sequence = [
                20, 16, 12, 8, 4, 19, 15, 11, 7, 3, 3, 7, 11, 15, 19, 4, 8, 12,
                16, 20
            ]
            right_hand_sequence = [
                17, 13, 9, 5, 1, 18, 14, 10, 6, 2, 2, 6, 10, 14, 18, 1, 5, 9,
                13, 17
            ]
            mode = 'both'
    game_ref = db.reference(GAME_DB).child(GAME_ID)
    game_ref.update({'score': score, 'strikes': strikes})
def init():
    mixer.init()
    db_connection = False
    while db_connection is False:
        try:
            game_ref = db.reference(GAME_DB).child(GAME_ID)
            game_ref.get()
            db_connection = True
        except:
            print(
                'Unable to find game databse reference. Trying again in 10 seconds ...'
            )
            sleep(10)
    if game_ref.get() == None:
        game_ref.set({
            'name': GAME_NAME,
            'alive': True,
            'status': 'Initializing',
            'score': score,
            'max_score': MAX_SCORE,
            'strikes': strikes,
            'max_strikes': MAX_STRIKES,
            'start_at': 0,
            'completed_at': 0
        })
    else:
        game_ref.update({
            'alive': True,
            'status': 'Initializing',
            'score': score,
            'strikes': strikes,
            'started_at': 0,
            'completed_at': 0
        })
        sleep(2)
def start():
    reset_game()
    game_ref = db.reference(GAME_DB).child(GAME_ID)
    game_ref.update({
        'status': 'Ready',
        'score': score,
        'strikes': strikes,
        'started_at': 0,
        'completed_at': 0
    })
    dialog_start_counter = 0
    while not start_button.is_pressed:
        if dialog_start_counter == 0:
            dialog_start = mixer.Sound(SOUNDS_PATH + '/dialog/start.wav')
            dialog_start.play()
        start_led.blink(0.5, 0.5, 1, False)
        dialog_start_counter += 1
        if dialog_start_counter > 30:
            dialog_start_counter = 0
    start_led.off()
    dialog_instructions = mixer.Sound(SOUNDS_PATH + '/dialog/instructions.wav')
    dialog_instructions.play()
    game_ref.update({
        'status': 'Playing',
        'started_at': datetime.utcnow().timestamp()
    })
    sleep(28)
Exemple #4
0
def loop():
    global achieved, activate_instructions, mode
    pressure = read_pressure()
    if mode == 'low':
        if activate_instructions:
            dialog_between_two_to_three = mixer.Sound(
                SOUNDS_PATH + '/dialog/between_200_to_300.wav')
            dialog_between_two_to_three.play()
            activate_instructions = False
        check_pressure(pressure, 200, 300)
    elif mode == 'medium':
        if activate_instructions:
            dialog_between_four_to_five = mixer.Sound(
                SOUNDS_PATH + '/dialog/between_400_to_500.wav')
            dialog_between_four_to_five.play()
            activate_instructions = False
        check_pressure(pressure, 400, 500)
    elif mode == 'high':
        if activate_instructions:
            dialog_between_six_to_seven = mixer.Sound(
                SOUNDS_PATH + '/dialog/between_600_to_700.wav')
            dialog_between_six_to_seven.play()
            activate_instructions = False
        check_pressure(pressure, 600, 700)
    if achieved == 2:
        achieved = 0
        activate_instructions = True
        if mode == 'low':
            mode = 'medium'
        elif mode == 'medium':
            mode = 'high'
        else:
            mode = 'low'
        game_ref = db.reference(GAME_DB).child(GAME_ID)
        game_ref.update({'score': score, 'strikes': strikes})
Exemple #5
0
def complete():
    global score
    activate_leds()
    score -= strikes
    if strikes < MAX_STRIKES:
        dialog_success = mixer.Sound(SOUNDS_PATH + '/dialog/on_success.wav')
        dialog_success.play()
    else:
        dialog_failure = mixer.Sound(SOUNDS_PATH + '/dialog/on_failure.wav')
        dialog_failure.play()
    print('Result: [ Score: {}, Strikes {} ]'.format(score, strikes))
    end_time = datetime.utcnow().timestamp()
    game_ref = db.reference(GAME_DB).child(GAME_ID)
    game_ref.update({
        'status': 'Finished',
        'score': score,
        'strikes': strikes,
        'completed_at': end_time
    })
    game_snapshot = game_ref.get()
    start_time = 0
    for key, val in game_snapshot.items():
        if key == 'started_at':
            start_time = val
    store.collection('results').add({
        'game_reference': GAME_ID,
        'started_at': start_time,
        'completed_at': end_time,
        'score': score,
        'strikes': strikes,
        'max_score': MAX_SCORE,
        'max_strikes': MAX_STRIKES
    })
    sleep(10)
def loop():
    if level == 1:
        generate_sequence()
    play_sequence()
    get_player_sequence()
    game_ref = db.reference(GAME_DB).child(GAME_ID)
    game_ref.update({'score': score, 'strikes': strikes})
Exemple #7
0
def clean_up():
    game_ref = db.reference(GAME_DB).child(GAME_ID)
    game_ref.update({
        'alive': False,
        'status': 'Inactive',
        'started_at': 0,
        'completed_at': 0
    })
    mixer.quit()
Exemple #8
0
def update_label():
    global cont
    if cont > 4:
        cont = cont - 2
        ref = db.reference("sensor")
        ref.update({'sensor1': {
            'valor': cont,
        }})
    if cont == 4:
        cont = cont - 2
        ref = db.reference("sensor")
        ref.update({'sensor1': {
            'valor': 0,
        }})
    if cont == 2:
        cont = cont - 2
        ref = db.reference("sensor")
        ref.update({'sensor1': {
            'valor': 0,
        }})
    variable.set(cont)
Exemple #9
0
def Leds_off():

    led5.write(0)

    led6.write(0)

    led7.write(0)

    ref = db.reference("sensor")

    ref.update({
        'sensor1/led10': 'OFF',
        'sensor1/led11': 'OFF',
        'sensor1/led12': 'OFF'
    })
Exemple #10
0
def Leds_on():

    led5.write(1)

    led6.write(1)

    led7.write(1)

    ref = db.reference("sensor")

    ref.update({
        'sensor1/led10': 'ON',
        'sensor1/led11': 'ON',
        'sensor1/led12': 'ON'
    })
Exemple #11
0
def adc_read():
    global prom
    i = 0
    prom = 0
    while i < 15:
        i = i + 1
        x = a_0.read()
        print(x)
        adc_data.set(x)
        prom = x + prom
        ventana.update()
        time.sleep(0.1)
    prom = prom / 15
    print("El promedio es ", prom)
    ref = db.reference('sensor')
    ref.update({'sensor1/adc': prom})
Exemple #12
0
def loop():
    global done, mistake, level
    done = [False] * MAX_STATES
    mistake = [False] * MAX_STATES
    set_as_buttons()
    for s in range(MAX_STATES):
        read_switch(io[s], s)
        read_origin(io[s], s)
        generate_targets(s)
    while states[0] != targets[0] or states[1] != targets[1] or states[
            2] != targets[2] or states[3] != targets[3] or states[
                4] != targets[4]:
        set_as_buttons()
        for s in range(MAX_STATES):
            read_switch(io[s], s)
        set_as_leds()
        for s in range(MAX_STATES):
            check_state_against_target(s)
        if start_button.is_pressed:
            break
        sleep(1)
    level += 1
    game_ref = db.reference(GAME_DB).child(GAME_ID)
    game_ref.update({'score': score, 'strikes': strikes})
Exemple #13
0
from firebase import db

# Constants

BOX_DB = 'boxes'
BOX_ID = 'proto-box'
BOX_NAME = 'Prototype-Box'

# Main

box_ref = db.reference(BOX_DB).child(BOX_ID)
if box_ref.get() == None:
    box_ref.set({
        'name': BOX_NAME,
        'company': 'PaceFactory Inc.',
        'location': 'Oakville ON',
        'game-collection': {
            'face-one': BOX_ID + '-simon-says',
            'face-two': BOX_ID + '-follow-the-leader',
            'face-three': BOX_ID + '-push-pull',
            'face-four': BOX_ID + '-under-pressure',
            'face-five': BOX_ID + '-dial-it-in'
        }
    })