ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Informe Tecnico, Buscaminas


Enviado por   •  12 de Enero de 2015  •  8.444 Palabras (34 Páginas)  •  623 Visitas

Página 1 de 34

Informe Técnico

Descripción del Problema

Se solicita desarrollar una versión1 del conocido video juego Busca Minas. El juego consiste en un

Mapa (una matriz de n x m posiciones, ver más abajo ejemplos de mapas) que contiene una cierta

Cantidad de minas. Al comenzar una partida, el mapa se encuentra completamente oculto, es decir, no

Sabemos el contenido de cada posición del mismo. El jugador debe ir descubriendo celdas, en cada

Descubrimiento, puede suceder lo siguiente:

• Encuentra una mina: Juego terminado, el jugador pierde.

• No descubre una mina: las posibilidades son:

O La cantidad de celdas ocultas es igual a la cantidad de minas reportadas (cantidad

Total) del mapa: El jugador ha GANADO.

o Aun quedan celdas por explorar: la celda descubierta contiene la cantidad de minas

colindantes (celdas vecinas).

Así el jugador utilizando la información proporcionada por el mapa deberá ir explorándolo hasta

ganar o EXPLOTAR.

La versión del juego deberá proveer las siguientes funcionalidades generales:

• Brindar al usuario la creación de mapas de juego, es decir, poder editar un mapa

incorporando la cantidad de minas deseadas calculando automáticamente la

información. Cabe aclarar que, si bien los tamaños de los mapas serán fijos, con

cambios mínimos (2 constantes) y recompilando el programa, debería poderse

cambiar dichos tamaños.

• El usuario podrá guardar y leer mapas desde archivos (Funcionalidad Provista por la

Cátedra)

• Ofrecer el modo juego, en el cual, además de la funcionalidades descriptas del

comportamiento del juego, el usuario dispondrá de las siguientes funcionalidades

extra.

• Bandera: el usuario podrá incorporar en el mapa, mientras juega, indicadores

que utilizará como una guía visual para no descubrir minas.

• Tablero: el usuario dispondrá mientras juega de un tablero indicando la

1

Comportamiento similar, aunque puede diferir o estar restringido con respecto a otras

versiones.

• cantidad de minas que contiene el mapa vs. un indicador de la cantidad de

banderas colocadas.

Funcionalidad Extra: el programador deberá incorporar alguna funcionalidad

extra al juego para convertirlo en un best seller :D. Por ej. durante una partida

y por única vez mostrar durante 3 segundos una parte del mapa.

Descripción desde el punto de vista de los alumnos

El software proporcionado se basa en el clásico juego “El buscaminas” con la intención de poder basarse más en el conocimiento de la parte de la lógica sin importar demasiado la grafica. La idea del proyecto es poder realizar un buscaminas con las funcionalidades mínimas del juego clásico y alguna que otra funcionalidad agregada.

El lenguaje de programación utilizado es PASCAL y el compilador es el Free PascalCompiler.

En el siguiente diagrama se muestra la división del proyecto en sub problemas a solucionar

Y las

Sub divisiones

Diseño General del Programa

(Los subproblemas particionados serán entregados en su lenguaje de programación (Pascal) en sus respectivas unidades en un archivo adjunto)

Diseño:

Acciones y Funciones agregadas en pseudocódigo

Interfaz Grafica

SUBPROBLEMA 2

Accion InterfazBoom

Inicio

gotoXY (1,25)

Textcolor (BoomColor)

Escribir ( ‘ ______ ______ ______ __ __ __ ‘)

Escribir (‘ | \ / \ / \ | \ / \| \ ‘)

Escribir (‘ | $$$$$$$\| $$$$$$\| $$$$$$\| $$\ / $$ | $$ ‘)

Escribir (‘ | $$__/ $$ | $$ | $$ | $$ | $$ | $$$\ / $$$ | $$ ‘)

Escribir (‘ | $$ $$ | $$ | $$ | $$ | $$ | $$$$\ $$$$| $$ ‘)

Escribir (‘ | $$$$$$$\| $$ | $$ | $$ | $$ | $$ \$$ $$ $$\$$ ‘)

Escribir (‘ | $$__/$$ | $$_/ $$ | $__/ $$ | $$ \$$$| $$ __ ‘)

Escribir (‘ | $$ $$ \$$ $$ \$$ $$ | $$ \$ | $$ | \ ‘)

Escribir (‘ \ $$$$$$$ \$$$$$$ \$$$$$$ \$$ \$$ \$$ ‘)

Textcolor (‘Tcolor’)

readkey

Fin

Accion InterFazGano

Inicio

GotoXY(1,25)

TexColor (GanoColor)

Escribir (‘ ______ ______ __ __ ______ __ ‘)

Escribir (‘ / \ / \ / \ / | / \ / | ‘)

Escribir (‘ /$$$$$$ |/$$$$$$ |$$ \ $$ |/$$$$$$ |$$ | ‘)

Escribir (‘ $$ | _$$/ $$ |__$$ |$$$ \$$ |$$ | $$ |$$ | ‘)

Escribir (‘ $$ |/ |$$ $$ |$$$$ $$ |$$ | $$ |$$ | ‘)

Escribir (‘ $$ |$$$$ |$$$$$$$$ |$$ $$ $$ |$$ | $$ |$$/ ‘)

Escribir (‘ $$ \__$$ |$$ | $$ |$$ |$$$$ |$$ \__$$ | __ ‘)

Escribir (‘ $$ $$/ $$ | $$ |$$ | $$$ |$$ $$/ / | ‘)

Escribir (‘ $$$$$$/ $$/ $$/ $$/ $$/ $$$$$$/ $$/ ‘)

texCcolor (Tcolor)

Readkey

Fin

Accion InterfazDibujarEsqueletoMapa

Léxico

i,j ∈ entero {variables auxiliares}

Inicio

MoverCursorMapa

Para i desde PosMapaY hasta MapaCantFils+PosMapaY+1 paso 1 hacer

Para j desde PosMapaX hasta MapaCantCols+PosMapaX+1 paso 1 hacer

si (j=PosMapaX)  (j=MapaCantCols+PosMapaX+1) entonces

GotoXY (j,i)

Textcolor (BorderColor)

Escribir (VBorder)

Fsi

si (i=PosMapaY) (i=MapaCantFils+PosMapaY+1) entonces

GotoXY (j,i)

Textcolor (BorderColor)

Escribir (HBorder)

Fsi

FPara

textColor (TColor)

FPara

Fin

Función DibujarValorCelda ( x,y ∈ entero )→ cadena

Inicio

si (MascaraMapaObtenerValor (pX,pY) = visible) entonces

Segun

MapaObtenerValor(x,y)= 0 : ←Dibujo0MinasColindantes

...

Descargar como (para miembros actualizados) txt (35 Kb)
Leer 33 páginas más »
Disponible sólo en Clubensayos.com