// recibe un perro, el cual debe cavar en su posición // *** viene del syscall cavar *** uint game_perro_cavar(perro_t *perro) { // ~~~ completar ~~~ //vemos si esta sobre un escondite if (game_perro_olfatear(perro) != AQUI) { //breakpoint(); //no esta sobre un escondite return 0; } //vemos si no tiene 10 huesos if (perro->huesos >= 10) { //breakpoint(); //no puede cargar mas return 0; } //vemos si al escondite le quedan huesos if (game_huesos_en_posicion(perro->x, perro->y) == 0) { //no hay huesos //breakpoint(); return 0; } //aumentamos su cantidad de huesos perro->huesos += 1; //disminuimos la cantidad de huesos del escondite game_huesos_desenterrar(perro->x, perro->y); return 1; }
// recibe un perro, el cual debe cavar en su posición // *** viene del syscall cavar *** uint game_perro_cavar(perro_t *perro) { if (perro->huesos < 10 && game_huesos_en_posicion(perro->x, perro->y) > 0) { perro->huesos++; game_dec_huesos(perro->x, perro->y); } else { return 0; } return 1; }
void screen_actualizar_posicion_mapa(uint x, uint y) { uchar bg = C_BG_GREEN; uchar letra; uint valor = game_huesos_en_posicion(x,y); perro_t *perro = game_perro_en_posicion(x, y); if (perro != NULL) { letra = screen_caracter_perro(perro->tipo); } else if (valor > 0) { letra = screen_caracter_tesoro(valor); } else if ((jugadorA.x_cucha == x && jugadorA.y_cucha == y) || (jugadorB.x_cucha == x && jugadorB.y_cucha == y)) { letra = 'x'; } else { letra = screen_valor_actual(y+1, x); } screen_pintar(letra, bg | C_FG_BLACK, y+1, x); }