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)
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})
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})
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()
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)
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' })
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' })
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})
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})
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' } })