Organización del Computador
TP - ARM
Propósito y sentido de la actividad
En este trabajo se van a desarrollar y poner en práctica los conceptos de arquitectura
ARM que se ven durante la segunda parte de la materia después del primer parcial. En
particular se presta atención a los siguientes conceptos:
· Datos almacenados en registros, pila, memoria
· Modos de direccionamiento
· Llamada a procedimientos del usuario e interrupciones del sistema
Estos puntos se ponen en práctica en el contexto de un juego de consola o terminal. Este
contexto también permitirá implementar algunos conceptos vistos durante la primera
parte de la materia, por ejemplo:
· Codificación de caracteres ASCII
· Conversión entre bases Decimal -> Binario, Binario -> Decimal
· Operaciones en Complemento A2
Producto final de la actividad
Al finalizar este trabajo tendremos un programa de consola escrito en lenguaje
ensamblador ARM. Además tendremos una serie de procedimientos que nos permitirán
implementar otros programas.
Evaluación
El juego debe estar terminado completamente y funcionando. Se debe presentar un
archivo formato PDF, conteniendo un informe del trabajo realizado con caratula y las
dificultades encontradas. Incluir el pseudocódigo con explicación.
NO PEGAR EN EL INFORME EL CODIGO, solo la ubicación en el servidor (Directorio
y nombre del archivo)
El nombre del archivo debe ser TP_Final_Orga_NumeroDeGrupo.pdf
Fecha límite de entrega: (ver en moodle)
Espacio y modo de entrega: (ver en moodle)
Esquema General y Pseudocódigo
Enunciado del TP:
Para este trabajo práctico, se pide a los alumnos que implementen una versión del juego
Wordle utilizando ensamblador. La implementación se realizará para jugar a través de la
terminal o línea de comandos.
El Juego de Wordle
Wordle es un juego de adivinanzas en el que un jugador debe descubrir una palabra
oculta en un número limitado de intentos. A medida que el jugador ingresa palabras, el
juego proporciona pistas indicando qué letras están en la palabra oculta y si están en la
posición correcta.
Lógica del Juego:
El programa deberá obtener un
listado de palabras de un archivo
externo, y eligirá una palabra
aleatoriamente para cada partida.
Luego se deberá informar al jugador
cuantas letras contiene la palabra
que debe adivinar.
Paso seguido, se solicitara al jugador
una palabra que tenga la cantidad de
letras especificadas. Esto se repetirá
hasta que el jugador adivine la
palabra o en su defecto, que se hayan
terminado los intentos.
Por cada palabra que ingrese el
usuario se debe verificar si las letras
son correctas y estan en su posicion,
esto se mostrara pintando cada letra
de un color distinto dependiendo de
su condicion:
Verde : la letra aparece en la palabra y está en la posicion correcta.
Amarillo : la letra aparece en la palabra pero no esta en la posición correcta.
Rojo : la letra no aparece en la palabra.
Si se adivina la palabra antes de perder todos los intentos, se informara al usuario la
cantidad de puntos obtenidos. Los puntos se calcularan multiplicando la cantidad de
intentos restantes por la cantidad de letras que tenia la palabra. Ejemplo : si el jugador
acerto una palabra de 5 letras en el primer intento obtendrá 25 puntos, en caso de que
lo hizo en el ultimo intento solo obtendrá 5 puntos.
A continuación, el programa deberá abrir el archivo que contiene los ultimos 3 jugadores
y escribirá en el mismo el nombre del jugador con los puntos obtenidos. Luego mostrará
el ranking con los 3 últimos jugadores en pantalla.
En caso de que luego de 5 intentos el jugador no adivine la palabra, se deberá informar
que el juego termino y dar la opción de volver a jugar. Si el jugador acepta se deberá
volver a elegir una palabra al azar y comenzar nuevamente, en caso contrario el
programa debe terminar.
Escribir la lógica general del programa con un pseudocódigo. Consultar en el calendario
de su comisión la fecha de control de avance del TP donde tendrá que discutir con su
docente la idea general y el pseudocódigo.
Su implementación debe incluir al menos las siguientes rutinas principales, se pueden
agregar más si lo cree necesario.
leer_palabras Leer palabras del archivo .txt y guardarlas en una lista.
sortear_palabra Elige una palabra al azar de la lista de palabras en
memoria.
calcular_letras Cuenta la cantidad de letras que tiene la palabra.
leer_palabra Lee la palabra ingresada por el usuario
Verificar_letras_verdes Verifica las letras que son correctas.
Verificar_letras_amarillas Verifica las letras que aparecen en la palabra pero estan
en posición incorrecta.
Informar_resultado Informa por pantalla el resultado de la palabra ingresada,
mostrando las letras con el color que le corresponde.
Calcular_puntos Calcula la cantidad de puntos obtenidos.
Verificar_intentos Verifica la cantidad de intentos restantes.
Pedir_nombre Solicita el nombre al usuario para luego guardarlo en el
ranking.
Grabar_ranking Graba en el archivo .txt el nombre del usuario con los
puntos obtenidos
Mostrar_ranking Muestra el ranking de los ultimos 3 jugadores.
Comentarios generales
Es importante consultar previamente el pseudocódigo con sus docentes antes de
empezar a implementarlo en ARM. Consultar en el calendario la fecha estimada para el
control de avance del tp.