Está en la página 1de 3

PROYECTO DE ASIGNATURA FUNDAMENTOS DE PROGRAMACIÓN 2022-1

OBJETIVO

Aplicar los conocimientos adquiridos en la asignatura fundamentos de programación, en el


desarrollo de un juego que permitan al estudiante, avanzar en su proceso de aprendizaje, pasando
de la solución de ejercicios, a la escritura de pequeños programas o aplicaciones en el lenguaje de
programación Python.

ALCANCE

El juego que se pide desarrollar está dentro del alcance de los conceptos que se ven en la asignatura
fundamentos de programación. Sin embargo, podrían requerirse otros dos elementos puntuales
que tienen que ver con el retardo de ejecución y la escritura de archivos. El juego que se pide
desarrollar tiene las siguientes particularidades.

• Lenguaje de programación: Python.


• Modo texto: no se requiere usar ningún aspecto gráfico avanzado en el desarrollo de la
aplicación.
• Autocontenido: un solo archivo de código fuente es suficiente para contener a toda la
aplicación.

ENUNCIADO: ADIVINA DÓNDE ESTÁ LA REINA DE CORAZONES

Este juego consiste en intercambiar de posición rápidamente y de manera aleatoria, tres cartas que
inicialmente se muestran al usuario “boca arriba” y se intercambian varias veces “boca abajo”. El
(La) participante debe adivinar, después de realizados los intercambios, en cuál de las tres cartas
está la reina de corazones (una de las cartas siempre es la reina de corazones, las otras dos pueden
ser cualquier carta). Cuando el (la) participante selecciona la carta en la que supone está la reina de
corazones, las cartas de nuevo se ponen “boca arriba” para que el (la) participante pueda ver si
acertó o no.

Un ejemplo de una partida del juego se indica a continuación. Las letras de color rojo se han puesto
deliberadamente en ese color para identificar la entrada del usuario. Las indicaciones en verde se
han puesto deliberadamente en ese color para indicar que suceden otros eventos que se consideran
en la partida, pero no se muestran en el ejemplo.
EJEMPLO #1

Adivina dónde está la reina de corazones

> Seleccione: jugar [ J ], tabla de posiciones [ T ], salir [ S ]: J


> Por favor indique su nombre: juan

¡Juan mantén tus ojos bien abiertos mientras las cartas se mueven!
___ ___ ___
|J | |Q | |8 |
| ♦ | | ♥ | | ♣ |
|__J| |__Q| |__8|

> Presiona ENTER cuando estés listo(a) <se presiona ENTER>

Intercambio izquierda (I) con la del medio (M)…


Intercambio derecha (D) con la del medio (M)…
Intercambio la del medio (M) con izquierda (I)…
Intercambio derecha (D) con izquierda (I)…
Intercambio izquierda (I) con derecha (D)…
<podrían suceder otros intercambios>

¿En cuál de las cartas está la reina de corazones? [I], [M], [D]: M
___ ___ ___
|Q | |8 | |J |
| ♥ | | ♣ | | ♦ |
|__Q| |__8| |__J|

Lo siento perdedor(a) :-(


¡Gracias por jugar!

> Seleccione: jugar [ J ], tabla de posiciones [ T ], salir [ S ]: T

Top 5 de lo(a)s mejores:

1. María, 15 puntos. Mejor jugada el 2022-03-11 a las 10:58pm


2. Pepe, 8 puntos. Mejor jugada el 2022-03-12 a las 08:00am
3. Ana, 7 puntos. Mejor jugada el 2022-02-10 a las 8:10pm
4. Juan, 3 puntos. Mejor jugada el 2022-02-08 a las 4:13pm
5. Tatiana, 2 puntos. Mejor jugada el 2022-03-07 a las 7:10pm

> Seleccione: jugar [ J ], tabla de posiciones [ T ], salir [ S ]: S

¡Adiós!
REQUISITOS FUNCIONALES

• El juego debe ser desarrollado completamente en Python y en un solo archivo de código.


• Cada partida debe incluir los elementos y la lógica que se indican en el enunciado y en la
partida de ejemplo.
• Las cartas deben representarse como se indica en la partida de ejemplo.
• Se debe guardar en un archivo de texto, el nombre del (la) jugador(a), puntuación
acumulada y la fecha y la hora de la mejor jugada (en donde ganó más puntos), para poder
tener una tabla de posiciones de los (las) mejores jugadore(a)s. Usted define su esquema
de puntaje.
• El número de intercambios debe ser aleatorio por cada intento. Usted define un rango
considerable de intercambios que deben suceder en cada partida. Mínimo 5 intercambios.
• Los intercambios deben ser aleatorios, no siempre los mismos intercambios, ni en el mismo
orden en cada partida.
• Los intercambios deben suceder con cierto retardo: por ejemplo, realizar un intercambio
cada medio segundo, cada segundo, cada dos segundos, etc. Usted define que tan complejo
o simple hace cada partida en términos de la velocidad de intercambio de las cartas.
También podría tener retardos aleatorios entre intercambios, por ejemplo: el segundo
intercambio a los dos segundos del primero, el tercer intercambio al medio segundo del
segundo intercambio, el cuarto intercambio a los 1.5 segundos del anterior, etc. Haga que
la partida sea difícil, pero no imposible para el (la) participante.

ENTREGABLES Y SUSTENTACIÓN

• Se realizan tres sustentaciones parciales del 10% cada una en las semanas 5, 10 y 15.
• En cada una de las sustentaciones se debe tener un avance en el desarrollo del juego y se
debe sustentar el avance en términos del código y planteamiento lógico del problema.
• En cada sustentación se entrega el avance de código que se tenga a la fecha. En la semana
15 se debe presentar y entregar el juego completamente funcionando.

RECOMENDACIÓN

Su producto debe reflejar su proceso de aprendizaje. No copie código de ninguna parte ni de


ningún(a) compañero(a) o grupo. Acérquese a las asesorías del docente o de los monitores para
que vaya avanzando en el desarrollo y planteamiento del juego. Si se encuentra que su código
y/o planteamiento lógico es igual al de otro(s) grupo(s), su trabajo y el del (los) grupo(s) copia
se anula(n).

También podría gustarte