void game_tick(uint id_pirata) { //chequea por piratas pendientes if (hay_mineros_disponibles(&jugadorA) && !hay_pirata_en_puerto(&jugadorA)) { uint posCavar = obtener_pos_cavar_pendiente(&jugadorA); game_pirata_inicializar(PIRATA_MINERO, JUGADOR_A, posCavar); } else if (hay_mineros_disponibles(&jugadorB) && !hay_pirata_en_puerto(&jugadorA)) { uint posCavar = obtener_pos_cavar_pendiente(&jugadorB); game_pirata_inicializar(PIRATA_MINERO, JUGADOR_B, posCavar); } if (jugadorA.puntuacion == puntaje_anteriorA && jugadorB.puntuacion == puntaje_anteriorB){ muerte_subita++; if (muerte_subita > 40) { game_terminar_si_es_hora(); } } else { muerte_subita = 0; } puntaje_anteriorB = jugadorA.puntuacion; puntaje_anteriorA = jugadorB.puntuacion; if (botines_pendientes == 0) { game_terminar_si_es_hora(); } //actualiza pantalla if (id_pirata < NULL_ID_PIRATA) { pirata_t* pirata = id_pirata2pirata(id_pirata); screen_actualizar_reloj_pirata(pirata->jugador, pirata); } screen_actualizar_reloj_global(); }
// ~~~ debe atender la interrupción de reloj para actualizar la pantalla y terminar si es hora, // ~~~ recibe el perro que está corriendo actualmente void game_atender_tick(perro_t *perro) { if (perro != NULL){ screen_actualizar_reloj_perro(perro); //breakpoint(); } mostrar_reloj(); ultimo_cambio--; game_terminar_si_es_hora(); }
// ~~~ debe atender la interrupción de reloj para actualizar la pantalla y terminar si es hora, // ~~~ recibe el perro que está corriendo actualmente void game_atender_tick(perro_t *perro){ //pintar? capaz todas las actualizaciones(perro, jugador, se hacen aca) screen_actualizar_reloj_perro(perro); game_terminar_si_es_hora(); }