Pascal/Turbo Pascal - (AYUDA CON PROYECTO FINAL)

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido 1 puesto en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

(AYUDA CON PROYECTO FINAL)

Publicado por //Z// (2 intervenciones) el 06/07/2020 21:38:17
¡Buen día!

Hola, necisto ayuda con mi proyecto final que no tengo idea de como hacerlo. Para el proyecto uso el compilador de pascal Lazarus, de verdad necesito ayuda con este proyecto, para así poder pasar mi asignatura.A continuación la explicacion del proyecto.

*Definicion*

La Universidad del Software, es una empresa de software que se especializa en el desarrollo de juegos virtuales, y que está comprometida con la conservación del ambiente, desea implementar un juego de TOMBOLA VIRTUAL CON PROPÓSITO, en la que puedan participar jugadores de cualquier parte de Venezuela y que permita crear conciencia sobre el cuidado del ambiente, los valores ciudadanos, valores ucabistas al mismo tiempo que se juega, bajo los siguientes requerimientos:
Sobre los participantes:
 El juego se realizará por rondas y en cada ronda participaran dos (2) jugadores.
 Cada jugador se debe registrar, para la cual debe ingresar la cédula de identidad (ID identificador único), nombre completo, un alias, fecha de nacimiento, y su estado de procedencia
 Cada uno de los estados se identifica con un código de tres caracteres, como por ejemplo : Bolívar BOL, Zulia ZLA, Caracas CCS etc, y debe mantenerse almacenado junto a su nombre a objeto de facilitar el registro de los participantes.
 Un jugador no podrá registrarse más de una vez.
 Al registrarse el jugador, la aplicación debe asignarle una clave secreta, de cinco dígitos, que le permitirá el acceso al juego. Esta clave debe almacenarse encriptada, bajo cualquier forma de encriptación, para impedir que sea descubierta. .
Sobre las tarjetas:
 Cada ronda se juega con dos (2) pares de tarjetas.
 Existen cinco(5) tipos distintos de tarjetas, cada una está identificada con las cinco(5) primeras letras del abecedario (A,B,C,D,E ) y se identificaran con un nombre único, que será asignado por los desarrolladores de la aplicación. El nombre de cada tipo de tarjetas debe estar referido al propósito de la tómbola. Por ejemplo RECICLA, AGUA si el propósito es la conservación y cuidado del ambiente, SINCERIDAD, BONDAD, GRATITUD si el propósito es resaltar los valores humanos.
 Cada tarjeta tiene su complemento o par, lo que totaliza un conjunto de diez(10) tarjetas., así que de la tarjeta tipo A, tenemos A1 y A2, de la tipo B tendremos B1 y B2 y cada una de ella contiene una figura, tal como se ilustra en el Anexo A. (escoger 5 de las 6 figuras que aparecen)
 Cada participante, deberá escoger una tarjeta. La selección de la tarjeta por cada uno de los participantes, genera la asignación de dos tarjetas, una para el jugador que la escogió y la otra (denominada complemento) se le asigna al otro jugador. Es decir, se asignarán cuatro tarjetas en total para cada ronda de juego, dos para cada participante.
 Un tipo de tarjeta es escogida por uno de los participantes y la otra es escogida por el otro participante.
 Para la escogencia de las tarjetas se debe desplegar un menú con los nombres que las identifican. La primera tarjeta la escoge el jugador con mayor ID..(cédula).
 Al escogerse un tipo de tarjeta, esta debe deshabilitarse del panel de selección., para que no el segundo jugador no escoja el mismo tipo.
 Cada tarjeta contiene una figura la cual debe ser completada en su totalidad.
 Las 4 tarjetas de una ronda de juego, tendrán una dimensión NxN.
 Para determinar el valor de N, cada participante debe introducir su cédula de identidad. La dimensión vendrá dado por el mayor número impar tomado entre los último dígitos de las dos cédulas ( siempre que sean mayores que 5), de no ser así se hará la comparación entre los penúltimos dígitos y así sucesivamente hasta agotar todos los dígitos de las cédulas. En caso de no resultar se emite un número impar al azar entre 5 y 9 que determina las dimensiones de las tarjetas.
Requerimientos que deben cumplirse AL COMENZAR el juego.
 Primeramente se debe mostrar el alias de cada jugador y la imagen de sus dos(2) tarjetas, que están en juego, con una secuencia de números, comenzando desde 1, en la cual se visualice el orden en que se irán colocando los números con los que jugará cada jugador.
 Seguidamente cada tarjeta se llenará con una serie de números aleatorios, entre 1 y NxN. Estos números se generaran al azar y sin repetición y se irán colocando sobre la tarjeta en el orden indicado en cada figura contenida en la tarjeta.
 Se debe ir cambiando de color , o tonalidad en el color, a medida que se van colocando los números aleatorios sobre cada celda de las tarjetas.
Requerimientos que deben cumplirse DURANTE el juego
 El juego consistirá en ir generando números aleatorios, sin que se repitan, de 1 a NxN y los cuales se irán marcando en cada una de las tarjetas participantes en que se encuentren. Gana el juego el primero que complete la figura de la tarjeta. Los números que van saliendo sorteados y aparezcan en algunas de las tarjetas se debe ir diferenciando del resto de los números que contiene la tarjeta, para ello se recomienda usar algún tipo de color que lo diferencie.
 Los números que se vayan generando deben ir mostrándose en la pantalla y deben permanecer hasta que se genere otra ronda de juego
 La tarjeta ganadora debe diferenciarse del resto de las tarjetas. Como por ejemplo, titilando la palabra GANADOR.
 Dado que en cada ronda de juego, participan dos pares de tarjetas. Aunque exista un ganador en una de ellas, el otro par continúa jugando, hasta que también haya un ganador. De esta manera habrá un ganador por cada par de tarjetas.
 La aplicación debe permitir jugar varias rondas de juego., sin necesidad de registrar nuevamente los jugadores.
 Durante el juego se debe visualizar, sobre cada par de tarjetas, el alias de cada jugador, seguido de las siglas del Estado de procedencia y el nombre que hayan escogido para cada tarjeta.
 IMPORTANTE : Durante el juego deben ir apareciendo mensajes alusivos al propósito de la tómbola, aunque se recomienda que sea en la parte inferior de la pantalla, el programador decidirá el lugar donde se mostraran los mensajes. Como por ejemplo “ Cuida el planeta …” o “La responsabilidad es un deber de todos ..”
Requerimientos sobre los ganadores y los premios.
 Al finalizar el juego, se debe mostrar la cantidad de puntos acumulados por cada uno de los participantes.
 El jugador ganador, acumula a su haber, la suma de los valores de las celdas de la tarjeta ganadora y el jugador perdedor acumula cero (0) puntos.
 La aplicación debe ofrecer una opción para visualizar (por pantalla o reporte impreso) un ranking de 5 los jugadores con mas puntos acumulados. (TOP 5)
Recomendacicones para el desarrollo del proyecto :
 Toda la información referente a cada ronda de juego, se debe llevar en variables temporales ( arreglos y/o variables independiente), hasta el final, que se almacenen en estructuras permanentes (archivos) .
 La información sobre los participantes (cédula de identidad, nombre y apellido, estado de origen, alias, ), deberá mantenerse en estructuras permanentes ( archivos), para evitar tener que registrarlos durante cada ronda de juego.
 Al finalizar cada ronda de juego se debe almacenar, en estructuras de almacenamiento permanente (archivos) la cantidad de puntos acumulados por jugador.
A modo de resumen :
Haciendo uso de las estructuras vistas en clases (estructuras de decisión, ciclos de repetición, manejo de cadenas, subprogramas, arreglos y archivos) y las funciones gráficas de Pascal, elaborar un programa que:
a) Permita jugar TOMBOLA VIRTUAL, de acuerdo a las especificaciones dadas anteriormente.
b) Antes de dar inicio al juego, se deben registrar los datos básicos de los jugadores, escoger el tipo de tarjeta con el que se jugará y sus dimensiones.
c) Visualizar en pantalla las tarjetas que están en juego y diferenciar cada celda que vaya saliendo premiada, con el resto de las celdas.
d) Deben predominar los colores asociados al propósito de la tómbola, como por ejemplo las tonalidades de verdes para propósito ambiental, o azul celeste si el propósito es reforzar los valores ciudadanos. Sea creativo.!!!!
e) La información referente al juego, se debe llevar en variables temporales hasta el final del juego que se almacenen en estructuras permanentes (archivos) el total de puntos ganados por cada jugador.
Además , a partir de los datos almacenados en los archivos, se pide :
a) Presentar por pantalla un diagrama de Gantt donde se refleje la cantidad de puntos obtenidos por cada uno de los jugadores pertenecientes a un estado en particular (dado las siglas del estado).
b) Elaborar un reporte, que muestre los datos básicos los jugadores que pertenecen a un Estado, mostrando su cédula, nombre, alias y fecha de nacimiento. Al final dar el total de jugadores
c) Elaborar un reporte que muestre la cédula, nombre, alias y fecha de nacimiento de los jugadores que nunca han ganado.
d) Hacer un reporte que muestre los TOP 5 para todo el país o para un estado en particular.
Se recomienda:
 El uso de un menú de opciones que permita seleccionar los requisitos solicitados.
 Usar cualquieras de las funciones de Pascal, en caso de requerirlas, como por ejemplo la función para generar los números aleatorios, el uso de funciones gráficas, uso de colores, sonidos, imagenes etc.
 Utilizar funciones gráficas que le permitan desarrollo de una interfaz amigable y atractiva para los jugadores. Sea creativo.










Captura111
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 112
Bronce
Ha mantenido su posición en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

(AYUDA CON PROYECTO FINAL)

Publicado por juanba (40 intervenciones) el 07/07/2020 10:29:47
Se me ocurren unas cuantas preguntas que pienso que sería interesante contestar antes de empezar a hacer algo.

- Sistema operativo: Windows, Linux? Lazarus funciona en los dos
- Lazarus: Aplicación de entorno gráfico o consola?
- ¿Se pueden utilizar Bases de datos?. Concretamente ¿SQLite y lenguaje SQL?
- Veo que en las figuras-ejemplo que has puesto están
A1-D1 en orden Fila-Columna, E1 Columna-Fila, F1: Espiral decreciente CW
A2-D2 en orden Columna-Fila, E2 Fila-Columna, F2: Espiral decreciente CCW
¿Por qué?
- Participante 1 puede elegir B1 o B2 --> asigna (B2 o B1) al participante 2?
o elige B y se asigna B1 al participante 1 y B2 al participante 2. ¿Correcto lo primero, lo segundo, ambos, ninguno?
- ¿Cuándo se genera el siguiente numero aleatorio?: (Tan rápido como se pueda, a intervalos de tiempo, por pulsacion de un boton o tecla...)
- ¿Por qué se piden datos personales de los participantes si el resultado del juego no depende de su capacidad, sino que es aleatorio?
- MUY IMPORTANTE. En el apartado "Requerimientos que deben cumplirse DURANTE el juego" aparece la frase: "y los cuales se irán marcando en cada una de las tarjetas participantes en que se encuentren."
¿Quien "irá marcando", el programa o los jugadores? Si es el programa, entonces la máquina es la única que juega. Los participantes solo están ahí para poner su nombre a un resultado.
Si el participante es el que marca en su figura el valor generado ¿Tiene tiempo limite? Porque si le puede dedicar a la busqueda del numero todo el tiempo del mundo, siempre conseguirá localizarlo y por lo tanto el resultado solo depende de si el numero está o no está en su figura, o sea en lo que haga el generador de numeros aleatorios y no en lo hábil o rápido que sea el jugador. Y por cierto, en caso de que sea el participante ¿se pelean los dos por el uso del teclado?
- Suponiendo que sean los participantes los que marcan en su tarjeta el numero aparecido, si este número está en las dos tarjetas lo pueden marcar los dos participantes o solo el más rápido.
- Si quien marca es la máquina ¿Qué pasa si un numero determinado es el último valor de las dos tarjetas de un par y por lo tanto ambas se completan al mismo tiempo? ¿Hay empates?
- La frase " Seguidamente cada tarjeta se llenará con una serie de números aleatorios, entre 1 y NxN. Estos números se generaran al azar y sin repetición y se irán colocando sobre la tarjeta en el orden indicado en cada figura contenida en la tarjeta." es ambigua:
a) Si los numeros son aleatorios es indiferente en qué orden se coloquen.
b) Si el orden, por algun motivo que se me escapa (tal vez facilitar la localizacion de los numeros que vayan saliendo durante el juego) es relevante entonces se debe referir al orden en sentido numerico y no al orden de aparición.
Pero si es así ¿por que hay varias normas de asignacion de los numeros a las casillas? Deberían seguir todas las figuras la misma norma, p. ej. ordenar por filas-columnas.
La ordenacion según la secuencia de generacion de los números para un conjunto de valores aleatorios no tiene ningún sentido para mí.
- ¿Se pueden utilizar librerías (perdón, bibliotecas) de encriptación de las que están publicadas en la red, tal como DCPCrypt?
- Discrepo en lo que se refiere a la frase " Toda la información referente a cada ronda de juego, se debe llevar en variables temporales". Si hay alguna incidencia (fallo o cuelgue del programa, corte del suministro de energía eléctrica, pandemia del covid-19, etc) no se podrá rehacer el estado anterior a la incidencia y como el resultado depende mucho de factores al azar, la reanudación podría dar lugar a un resultado opuesto al que se estaba produciendo antes del corte. Ergo conflictus habemus. En cambio, salvando en una base de datos cada una de las jugadas a medida que se van realizando es posible regenerar el último estado completado. No lleva apenas tiempo y es fácil recuperar la información sin más que reinstalar la situación original y volver a "jugar" los numeros generados anteriormente, pero esta vez no provenientes de una funcion random sino de una consulta (query) a la base de datos.

Pseudo-análisis hecho con prisas.

Dividir la aplicación en:
- Gestión de la Base de datos (BDD)
- Apertura, cierre, estructura de las tablas y vistas
- Copias de seguridad (backup/restore)
- Gestion de participantes
- Nuevo Participante
- Modificar datos Participante
- Presentar Competiciones de Participante
- Presentar Resultados de Participante
- Inhabilitar Participante
- Cambio de Estado de residencia de un participante

- Gestion de resultados
- Archivar resultado de partida incluyendo identificacion de los jugadores, resultado, fecha, lugar...
- Informes o Reportes:
- Diagrama de Gantt de los resultados acumulados por jugador para los jugadores de un estado.
- Datos personales de los jugadores de un estado
- Datos personales de los jugadores que nunca han ganado (¿lista negra?)
- Informe Top 5 por estado o general para todo el pais

- Gestion de las partidas
- Creación de las figuras de una partida. Definición del tamaño de la cuarícula y
asignacion de los valores aleatorios a las tarjetas
- Selección de las tarjetas por parte de los jugadores
- Registro en base de datos (BDD) de las condiciones iniciales
- Ejecución de cada nuevo número
- Comprobar que el número no ha salido anteriormente. Si es así descartarlo
- Presentar el número en pantalla y ponerlo en una lista de números por su orden de aparición (para posibles comprobaciones/impugnaciones)
- Añadir el número a la tarjeta de cada jugador si es que figura en ella (p. ej. cambiando el color en la cuadrícula)
- Visualizar el nuevo estado de la partida
- Comprobar si la tarjeta está comppleta
- Si es así, declarar ganador (de esa tarjeta y su opuesta) al jugador
- Registrar la jugada en la BDD
- Registrar el ganador si lo hay, sumar sus puntos, registrar el perdedor
- Si se ha completado tarjeta en los dos pares, partida terminada

- Gestión de fin de la aplicación. Lo primero a realizar. Ofrecer un camino de salida conveniente en cada situación del programa. Me he encontrado con programas que despues de equivocarte en el primer número, te obligaban a introducir otros 99 para poder terminar la aplicación correctamente.
- Dejar la puerta abierta a modificar este análisis apresurado.
- Es posible que yo no haya entendido nada y este análisis sea basura.

Y un par de preguntas más, o sea, tres (había contado mal, me lío con los grandes números):
¿Esto es para tí solo o para que lo haga un equipo?
¿De cuantos años dispones para construir esto?
¿A quien se le ha ocurrido semejante horror?

Un saludo.
Y un consejo: Si esta aplicación está pensada para funcionar alguna vez en el mundo real, hacerte (y contestar) estas preguntas y muchas más te ahorrará repetir y descartar mucho código por no haber tenido en cuenta situaciones "fuera de lo normal" que suelen tener la mala costumbre de aparecer en cuanto instalas tu programa en la computadora del usuario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar