lunes, febrero 09, 2009

Sopa de Numeros

Enunciado: El juego consta de un tablero que está compuesto de 15 filas y 15 columnas (casillas).

A continuación, se definen las reglas para generar el ambiente de juego:
  • Se generarán 7 números aleatorio de 3 ó 4.

  • La distribución en la cual será ubicado un número es aleatoria: vertical, horizontal, diagonal.

  • Cada cifra de un número se ubica en una casilla y las cifras del número se hallan en casillas contiguas dependiendo de la distribución que le corresponda (vertical, horizontal o diagonal).

  • La posición a partir de la cual se guarda cada uno de los dígitos del número generado deberá ser aleatoria:
    En caso de una distribución vertical se genera la columna y la fila a partir de la cual se ubicará el número así como el sentido en que se leerá.
    Si se trata de una distribución horizontal se genera la fila, la columna y el sentido de lectura.
    Si el tipo de distribución es diagonal, se escogerá aleatoriamente en cuál de las dos diagonales se ubicará el número al igual que la fila, la columna y el sentido en el que el número será situado en el tablero.

  • Las casillas que no contienen cifras de ninguno de los números generados serán llenadas con números aleatorios de una cifra.

Cuando el jugador ingrese a la opción Jugar del menú, se le solicitará su nombre. A continuación, se le mostrará el tablero y los números que deberá buscar. Por cada turno el jugador deberá seleccionar:

  • El número que desea buscar (opciones del 1 al 7)

  • La orientación del número: vertical, horizontal, diagonal 1 ó diagonal 2

  • La fila a partir de la cual se lee el número

  • La columna en la que se encuentra el número
  • El sentido de lectura izquierda a derecha (1) ó lectura de derecha a izquierda

Al inicio el Jugador empieza con 50, cada vez que falle en la búsqueda de un número se le restaran 10 puntos. No se otorgan puntos por encontrar los números buscados. Si se busca un número ya encontrado se penalizará al jugador con 5 puntos por desperdicio de tiempo de procesamiento.

El juego deberá mostrar la cantidad de intentos exitosos y fallidos de búsqueda.
El juego se gana una vez que se encuentren todos los números.

Fin del Juego

Existen tres maneras de finalizar el juego:

  • Cuando el jugador ha encontrado todos los números, es decir que ha ganado.

  • Cuando el jugador ha fallado tantas veces que su puntaje es inferior a cero.

  • Cuando el jugador no desea continuar con el juego; en este punto el jugador ingresa -1 en cualquiera de las entradas para buscar un número (numero a buscar, fila, posición ó sentido de lectura).

En caso de que el usuario desee salir (-1), se le deberá preguntar si desea guardar el juego, salir sin guardar ó cancelar.

  • En caso de que seleccione la opción de guardar el juego, se deberá guardar toda la información en el archivo juego.txt y mostrar un mensaje indicando que ha sido guardado el juego.
  • Si selecciona salir sin guardar, se le mostrará al jugador su puntaje, la cantidad de números encontrados y cantidad de números no encontrado.

  • Si selecciona cancelar se le deberá permitir continuar jugando.

Cargar Juego

Cada vez que el jugador no desee seguir jugando y guarde el juego, se generará el archivo Juego.txt, el mismo que contiene toda la información requerida para recrear el escenario del juego una vez que se utilice la opción cargar del menú principal.

El formato del archivo se detalla a continuación:

Nota: Si en su aplicación requiere guardar información adicional el formato del archivo puede ser modificado

Mejores puntajes

En el archivo Listado.txt, la aplicación irá almacenando los 10 mejores puntajes obtenidos por los jugadores.

A continuación, se detalla el formato del archivo:

Nota: En todo momento el programa deberá proveer al jugador la retroalimentación correcta decada una de las acciones ejecutadas. Adicionalmente, se deberán validar todas las entradas.

Posible Solución: Sopa de Números - ANSI C


1 comentario:

Unknown dijo...

Vaya que te han quedado bastante buenos los codigos. Creo que te debes haber tarddo un rato en desarrollarlos, pero gracias me ayudaste mucho con la logica de un programa.
Cuidate y sigue programando.
salu2