Proyectos 1.- Definir un predicado “aplanadora” que permita

Anuncio
Proyectos
1.- Definir un predicado “aplanadora” que permita aplanar una lista con listas de tal forma
que la nueva lista generada no contenga sublistas, únicamente elementos, es decir,
conteniendo todos los elementos que originalmente están contenidos en la lista original.
Ejemplo.
 aplanadora([a, [b, c], [[d], [], e]], X).
X = [a, b, c, d, e]
Nota: Existen al menos 6 formas diferentes de programar este predicado.
2.- El problema del caballo (Figura 1) es un antiguo problema matemático en el que se pide
que, teniendo una cuadrícula de 8 x 8 casillas y un caballo de ajedrez colocado en una
posición cualquiera ( x, y ), el caballo pase por todas las casillas y una sola vez.
Lo que resulta en n2-1 movimientos.
Figura 1. Problema del caballo (recorrido total del tablero)
3.- Desarrollar un programa en prolog que dadas las definiciones de al menos 10 figuras
similares a las mostradas en la siguiente figura pueda resolver el algoritmo siguiente:
A debe ser el inverso de B. Eso implica que debemos calcular el inverso de C. Si el inverso
de C está en la lista de respuestas, hemos encontrado la respuesta. En caso contrario,
volvemos al paso 2 para encontrar otra solución.
Figura 2. Ejemplos de figuras inversas
4.- Construya un programa prolog para armar el rompecabezas cuyas fichas se muestran en
la figura 3. Defina una estructura para la representación de las piezas de tal forma que
permita “rotar” y “empalmar” adecuadamente cada una de las piezas.
Figura 3. Piezas del rompecabezas a resolver
Nota: Se deben resolver 2 ejercicios de los 4 propuestos hasta aquí, para que pueda ser
válido como proyecto final del curso.
Otros proyectos pueden ser los siguientes:
1.- Programar el algoritmo A* en prolog, definido en la antología del curso página 10
2.- Programar el juego reversi/othello descrito en la antología del curso.
Descargar