Em Andamento

Realizar toda la practica.

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

[url removed, login to view] · 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 [url removed, login to view],

para cada función y para cada subrutina se especifica su funcionalidad y los

parámetros de entrada y de salida necesarios.

Habilidades: Montagem, Programação C, Programação C++

Ver mais: dos programming, asm programming, tecla, prac, llamar, la, funciones, escribir una, esc, entrada, entrada datos, consiste, c la, algunas, 573, esc programming, realizar , puzzle programming, para escribir, valor, programming puzzle, fichas, diagonal, delphi como realizar facturacion, realizar informes builder

Acerca do Empregador:
( 0 comentários ) Madrid, Spain

ID do Projeto: #5127913

Premiar a:

szymszteinsl

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

€130 EUR em 2 dias
(22 Avaliações)
5.9

2 freelancers estão ofertando em média €91 para este trabalho

novaemp

Hi, Dear. I hope you contact with me for this job. I will do my best for you. I am expert with C / C++ Actually, I could not understand for your requirements fully, but I know this job is not difficault. So, if Mais

€52 EUR in 5 dias
(2 Comentários)
3.8