// sentidos de movimiento de la serpiente typedef enum {DERECHA, ARRIBA, IZQUIERDA, ABAJO} sentido_mov_t; /* * Inicializa la pantalla y crea el mutex que permite proteger * el recurso compartido. * techo: techo del mutex de protección de prioridad utilizado * internamente para implementar el monitor. */ void monitor_pantalla_inicializa(int techo); /* * Escribe los segundos transcurridos en la esquina superior * derecha de la pantalla. * (Esta operación se ejecuta en regimen de exclusión mútua) */ void monitor_pantalla_pone_segundos(int segundos); /* * Mueve la cabeza de la serpiente desde la posición indicada por 'x' e 'y' a * la nueva posición que le corresponde según indica 'sentido'. El valor de * retorno indica si se ha producido una colisión o no. * (Esta operación se ejecuta en regimen de exclusión mútua) * Parámetros: * x, y (entrada/salida): contienen la posición actual de la cabeza de la * serpiente. Al finalizar el método en estos parámetros se retorna * la nueva posición de la cabeza que se encontrará una posición arriba, * abajo, a la derecha o a la izquierda de la inicial según el valor * de 'sentido'. * sentido: sentido del movimiento de la serpiente desde la posición (x, y) * color: color en el que se dibuja la serpiente. * Retorno: * retorna 1 si se ha producido una colisión (la nueva posición de la * cabeza estaba ocupada) o 0 en caso contrario */ int monitor_pantalla_mueve_serpiente(int *x, int *y, sentido_mov_t sentido, int color);