FASE 5 - dccia

Anuncio
FASE 5: Interactuando con el jugador (II)
•
Actividad 5.1: Renombrar el fichero aventura-fase4.pl. Ahora pasará a llamarse
aventura-fase5.pl.
•
Actividad 5.2: Te habrás dado cuenta de que la posición del jugador es un valor
que debe cambiar en el tiempo, durante la ejecución del programa. Para poder
hacer eso, necesitaremos que posicionJugador sea un predicado dinámico.
Para esto, debes seguir los siguientes pasos: 1) borra el hecho posicionJugador
actual. 2) Crea una nueva regla, de las que se ejecutan al compilar el archivo, y
declara en ella el predicado posicionJugador de aridad 1 como dinámico.
•
Actividad 5.3: Ahora que es dinámico, hay que crearlo al principio del
programa y modificarlo cada vez que su valor cambie. Para el comienzo del
programa, nos crearemos una regla que llamaremos inicializar que se
ocupará de dar los valores de inicio a todos los predicados dinámicos que
vayamos creando. En esta regla, haremos 2 cosas: 1) Eliminaremos de la BC
cualquier valor anterior de posicionJugador que pueda haberse quedado de
ejecuciones anteriores. Esto lo haremos usando abolish. 2) Añadiremos a la BC
el predicado posicionJugador con el valor que debe tener al principio de la
partida (el valor correspondiente al lugar de salida, o lugar 2). Esto lo haremos
utilizando assert.
% inicializar: Añade a la BC todos los predicados dinámicos
%
con sus valores iniciales.
•
Actividad 5.4: La inicialización de los predicados dinámicos debe ser lo
primero. Por tanto, añade código a la regla empieza para que lo primero que se
haga sea inicializar.
Pistas para realizar las actividades:
- Los predicados dinámicos se declaran con la sentencia dynamic
predicado/aridad.
- Si no sabes como utilizar algún comando o instrucción de PROLOG, puedes
usar la ayuda con help(comando), o buscar ejemplos por Internet.
- El predicado de sistema abolish(predicado/aridad) elimina de la Base de
Conocimientos todos los predicados dinámicos que hayan con el nombre y la
aridad indicados.
- Recuerda que la aridad de un predicado es el número de argumentos que tiene.
- El predicado de sistema assert(hecho) añade el hecho indicado a la Base de
Conocimientos. Por ejemplo, assert(listo(juan)) hará que en la Base de
Conocimientos aparezca el hecho listo(juan).
- Nunca escribas 2 veces el mismo código a no ser que sea necesario. Procura
hacer llamadas de unas reglas a otras para reutilizar el código que ya funciona.
- Una vez hecho todo esto, comprueba que el programa funciona igual que en la
fase anterior, pero ahora lo hace con predicados dinámicos.
Descargar