Realizar toda la practica.
€30-250 EUR
Pagado a la entrega
Enunciado
El programa tiene que implementar el juego del "15-puzzle" que consiste en
ordenar 15 fichas en un tablero de 4 x 4 casillas donde tendremos una casilla
vacía que nos permitirá hacer los movimientos para ordenar las fichas, y
dispondremos de un número máximo de movimientos. Los movimientos que
se podrán realizar son mover una ficha: arriba, abajo, izquierda y derecha
(nunca en diagonal). Este movimiento consistirá al desplazar una ficha a la
casilla vacía, dejando su lugar vacío para el siguiente movimiento. habrá unas
teclas para desplazar el cursor por el tablero, la posición del cursor nos
indicará la ficha que queremos mover y sólo se podrá hacer el movimiento si
está junto a la casilla vacía.
Las fichas del tablero serán los dígitos hexadecimales y consideraremos que
el tablero está ordenado si las fichas están ordenadas según su valor
numérico, del '1' a la 'F' (las letras mayúsculas), de izquierda a derecha y de
arriba abajo, quedando la casilla vacía en la última posición (bajo - derecha).
Las funciones que podremos realizar son las siguientes:
- Mover el cursor: 'i' (arriba), 'j' (izquierda) , 'k' (abajo) ,'l' (derecha)
- Mover la ficha donde tenemos el cursor a la casilla vacía que tenga a
su lado (arriba, bajo, izquierda o derecha): Espacio
- Salir: 'ESC' saldremos del programa.
Tendremos que controlar las siguientes situaciones:
- Que la configuración inicial de las fichas sea correcto. Sólo 1 espacio.
- Al mover el cursor que no salga fuera del tablero.
- No mover ninguna ficha si la casilla vacía no está junto a la casilla
donde estamos.
- Al mover una ficha que se decrementen los movimientos restantes.
- Que no se hayan agotado los movimientos restantes.
- Si las fichas del tablero están ordenadas para acabar.
El juego finaliza por los siguiente motivos:
- Hemos pulsado la tecla <ESC>
- Las fichas del tablero están ordenadas.
- Se han agotado los movimientos.
- La configuración inicial de las fichas del tablero no es válida.
Antes de finalizar hay que mostrar un mensaje indicando qué ha sido el
motivo y esperarse hasta que el usuario pulse una tecla.
Implementación
El código del programa se dividirá en dos partes, una parte en lenguaje C y
una parte en lenguaje ensamblador.
Utilizaremos C para:
- Definir variables utilizadas en el código C y en el código ensamblador.
- Escribir el programa principal y algunas funciones.
- Llamar a las funciones de C y d ensamblador que realizan las
diferentes operaciones del programa.
6
05.573 · Estructura de Computadors · PRÀCTICA · 2013-02
- Leer valores por teclado y mostrar los resultados por pantalla.
Utilizaremos ensamblador para:
- Escribir subrutinas que llamaremos desde C o desde otras subrutinas
de ensamblador.
- Llamar a determinadas funciones de C.
El programa tendrá que tener los datos, las funciones de C y las subrutinas de
ensamblador que encontraréis definidas en los ficheros prac.c y [login to view URL],
para cada función y para cada subrutina se especifica su funcionalidad y los
parámetros de entrada y de salida necesarios.
Nº del proyecto: #5127913
Sobre el proyecto
Adjudicado a:
Hi! I am professional C/C++/C#/Java programmer. I can do this project with highest quality. Best Regards, Szymszteinsl I need only instruction in english