// recibe un par (x, y) y un jugador, al cual debe mover en esa dirección uint game_jugador_moverse(jugador_t *j, int x, int y) { int nuevo_x = j->x + x; int nuevo_y = j->y + y; // ~~~ completar ~~~ if (!game_es_posicion_valida(nuevo_x, nuevo_y)) return 0; screen_borrar_jugador(j); j->x = nuevo_x; j->y = nuevo_y; screen_pintar_jugador(j); return 1; // uso todas las variables locales para que no tire warning -> error }
void screen_cargar_atras_debug() { int i, j; for (i = POSICION_CUADRO_DEBUG_X; i < POSICION_CUADRO_DEBUG_X + ANCHO_CUADRO_DEBUG; i++) { for (j = POSICION_CUADRO_DEBUG_Y-1; j < POSICION_CUADRO_DEBUG_Y + ALTO_CUADRO_DEBUG; j++) { p[j+1][i] = p2[j+1][i]; } } for (i = POSICION_CUADRO_DEBUG_X; i < POSICION_CUADRO_DEBUG_X + ANCHO_CUADRO_DEBUG; i++) { for (j = POSICION_CUADRO_DEBUG_Y-1; j < POSICION_CUADRO_DEBUG_Y + ALTO_CUADRO_DEBUG; j++) { screen_actualizar_posicion_mapa(i, j); } } screen_pintar_jugador(&jugadorA); screen_pintar_jugador(&jugadorB); for (i = 0; i < MAX_CANT_PERROS_VIVOS; i++) { perro_t *dog = &(jugadorA.perros[i]); if (dog->libre) continue; screen_pintar_perro(dog); } }