Пример #1
0
// 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;
}
Пример #2
0
// 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;
}
Пример #3
0
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);

}