0% encontró este documento útil (0 votos)
27 vistas7 páginas

Lab - Final 202510

El laboratorio final de Algoritmia y Programación I se centra en el diseño de un menú iterativo en Java y Python, con juegos que fomentan la siembra de árboles y la protección del medio ambiente. Incluye la creación de un juego de adivinanza de números, un juego de fichas y la implementación de procesos matemáticos como la multiplicación rusa y el cálculo de claves. Se establecen requerimientos de código, reglas de entrega y presentación, y aspectos a calificar, además de opciones de bonificación para mejorar la calificación final.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas7 páginas

Lab - Final 202510

El laboratorio final de Algoritmia y Programación I se centra en el diseño de un menú iterativo en Java y Python, con juegos que fomentan la siembra de árboles y la protección del medio ambiente. Incluye la creación de un juego de adivinanza de números, un juego de fichas y la implementación de procesos matemáticos como la multiplicación rusa y el cálculo de claves. Se establecen requerimientos de código, reglas de entrega y presentación, y aspectos a calificar, además de opciones de bonificación para mejorar la calificación final.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

LABORATORIO FINAL

Asignatura: Algoritmia y Programación I.


Profesora: Rocio Ramos Rodríguez.
Monitores: Elvira Florez, Alejandra Valencia, Natalia Carpintero
Semestre: 2025_10

1. Temas
Programación en Java y Python: Estructuras Algorítmicas Cíclicas

2. Enunciado: Cuidemos el medio ambiente


Diseñar un Menú iterativo con las siguientes opciones:

1. Miscelánea de Juegos:
1.1. ¡Siembra todo!

Ante la gran deforestación actual, un grupo de estudiantes quiere fomentar la siembra de árboles de una
forma divertida. Para ello, han creado un juego basado en el azar de un dado, la suerte y la siembra de
árboles.
El juego comienza repartiendo a cada jugador una cantidad igual de plántulas o semillas (stock de
plantación), pero de diferentes tipos, a elección del jugador (Árbol de mango, Roble, Cedro, Nogal y
Mortiño). El objetivo de cada jugador es plantar todas las semillas, hasta que un jugador quede con
ninguna plántula o semilla en su stock de plantación, declarándolo, así como el ganador del juego. Al
final de cada turno se verifica si ya hay un ganador.

Se debe mostrar un tablero al usuario donde se aprecien las casillas o semilleros. Los semilleros se
subdividen en 6 zonas diferentes enumeradas, las cuales poseen la misma cantidad de semilleros según
su numeración. Para la solución, se cuentan con 15 variables que representan cada semillero del
tablero,
excepto para el semillero grande de la zona 6. El programa leerá en qué posición desea sembrar su
semilla el jugador actual. No se podrá reescribir una posición que ya tenga una semilla plantada a
menos que el jugador se vea obligado a recoger las semillas de la zona. Se debe tener en cuenta que el
programa leerá posiciones hasta que se digite una posición válida (vacía) de la zona especificada.

X X X

X X X

X X

X X X
El juego se manejará por turnos, el jugador que saque el número más alto comienza el juego. La dinámica
consiste en que cada jugador tira una vez el dado:

• Si obtuvo un valor 6, el jugador plantara un árbol inmediatamente en dicha zona, disminuyendo así
en uno su stock de plantación. La sexta zona está protegida, segura y con un número ilimitado de
semilleros, por lo que no es necesario mostrar las plántulas en los semilleros. Los árboles plantados
en sus semilleros son inamovibles y no se pueden talar.
• En caso contrario, el jugador en turno debe plantar una semilla en uno de los semilleros disponibles
en la zona del número sacado. Si todos los semilleros o casillas de dicha zona ya están ocupados, el
jugador remueve y recoge todas las semillas o plántulas de esa zona, actualizando el valor de las
variables y agregándolas a su stock de plantación dejando así los semilleros de esa zona
nuevamente libre y su turno termina inmediatamente.

Una vez todos los jugadores hayan tirado el dado y el turno retorne al primer jugador que empezó, cada
jugador en su turno podrá tirar las veces que considere e ir sembrando futuros árboles en las zonas que le
corresponda, hasta que decida ceder su turno o caiga en una zona llena (y entonces debe recoger las
semillas y ceder su turno).

Cada jugador en su turno debe saber el estado del tablero y cuantas semillas o plántulas tiene en su stock
para así tomar la decisión de ceder o tirar el dado. También se debe mostrar un reporte de su progreso de
sus siembras al final del turno del jugador. Por ejemplo:

Fin Turno del Jugador 1:


Stock Original: 10
Stock de plantación: 10
Numero de plántulas sembradas: 2
Numero de plántulas recogidas: 2

----- Jugador 2 hace sus tiros en su turno | Resultados ---------

Fin Turno del Jugador 2:


Stock Original: 10
Stock de plantación: 12
Numero de plántulas sembradas: 5
Numero de plántulas recogidas: 2

1.2. Punto y fama ambiental: La temática del juego consiste en que el Dr. Carbón ha creado una
máquina para ayudar al ecosistema del bosque y la purificación del aire. Pero algo salió mal, la
máquina corre riesgo de explotar, lo que pone en peligro a todo el bosque donde habitan flora y
fauna en peligro de extinción y la explosión quemaría todo a su paso. Si llega a explotar, el bosque
demorará siglos en recuperarse y se extinguirán muchas especies. La máquina posee un código de 4
números secretos de desactivación.

No es un código cualquiera, sino una "clave de biodiversidad" (ej: combinación de números que
representan especies en peligro: 1=oso, 2=orquídea, etc.).
El jugador 1 (PC) genera aleatoriamente un número de cuatro cifras, no debe tener dígitos repetidos
(se debe validar que el número digitado no tenga repetidos, en este caso se debe solicitar un nuevo
número y volver a hacer la validación hasta que se digite un número válido).
Posteriormente el jugador 2 debe introducir combinaciones, no debe tener dígitos repetidos (se
debe validar que el número digitado no tenga repetidos, en este caso se debe solicitar un nuevo
número y volver a hacer la validación hasta que se digite un número válido), hasta acertar el número
original introducido por el jugador 1.
Luego que el jugador 2 escriba cada combinación, se debe mostrar el número de aciertos obtenidos
(s dice el número de famas (dígitos en la misma posición) y el número de puntos (dígitos en el
número original pero no en la misma posición)). Al final, mostrar el número de intentos empleados
en hallar el número.
• "Famas" → "Especies Salvadas" (dígitos en posición correcta).
• "Puntos" → "Especies en Riesgo" (dígitos correctos, pero en posición equivocada).

Ejemplo:
Número generado jugador 1 (PC): 4356
Número dado por el jugador 2: 4736;
Salidas: Hay 2 ‘Especies salvadas’ (2 famas) (4 y 6, por estar en la misma posición del número
generado) y una ‘especie en riesgo’ (un punto) (3, por encontrarse en el número generado, pero no
en la posición correcta).
Y así sucesivamente hasta que se adivine el número.

1.3. LA MARGARITA: Juego para dos jugadores. Nueve fichas y un tablero como el siguiente.

Reglas del juego:


❖ Se coloca una ficha en cada pétalo de la margarita.
❖ Por turno, cada jugador puede retirar una o dos fichas del tablero, con la condición de que
si son dos deben estar en pétalos contiguos.
❖ Gana el jugador que se lleva la última ficha.

Para la solución: Se cuenta con 9 variables que representan los nueve pétalos, cada uno en una. Todas
las posiciones inician vacías (valor inicial = 0). Los turnos impares serán para el jugador 1 (valor=1), los
turnos pares serán para el jugador 2 (valor=2). El programa leerá en qué posición desea jugar el
jugador actual. No se podrá reescribir una posición que ya tenga un valor, por lo tanto, el programa
leerá posiciones hasta que se digite una posición válida (vacía). Una vez se lea una posición válida, se
verificará si existe algún ganador.
Numeración de las Posiciones donde irían las variables: 1 2 3
4 5
6 7
8 9
2. Procesos matemáticos:

2.1. Multiplicación Rusa: Diseñar un algoritmo que multiplique dos números enteros mediante el algoritmo
de la multiplicación rusa. Este algoritmo multiplica por 2 el multiplicando y divide por dos el
multiplicador hasta que el multiplicador toma el valor 1. Después suma todos los multiplicandos
correspondientes a multiplicadores impares. Dicha suma es el producto de los números originales.

Ejemplo: 37 * 12 = 444 (multiplicador: 37, multiplicando: 12)


37 12
18 24
9 48
4 96
2 192
1 384
2 12 + 48 + 384 = 444

2.2. Clave de un número: Elaborar un algoritmo que calcule la clave para un número entero, así, si el
número es negativo se debe escribir la clave es -1. Si el número es positivo se calcula la clave de la
siguiente forma:

El digito más a la derecha se multiplica por 2, el siguiente hacia la izquierda por tres, el siguiente hacia
la izquierda por 4, etc. A la suma de los resultados de las multiplicaciones, se les calcula el mod 10.
Por ejemplo, si el número es 31234

4*2= 8
3*3=9
2*4= 8
1*5=5
3*6=18
Suma = 18+5+8+9+8 = 48
Mod = 48 mod 10 = 8

2.4 Funciones trigonométricas con series de Taylor: Teniendo en cuenta que el seno y coseno se pueden
calcular utilizando las siguientes fórmulas o series de Taylor, el programa debe permitir calcular las
demás funciones basadas en estas 2. Tener en cuenta que la sumatoria debe tener un fin
suministrado por el usuario para poder dar un resultado. No olvidar que la potencia debe ser
implementada con ciclos.
3. Requerimientos de Código
El programa debe contener estos requerimientos para ser aceptado como un buen programa en caso
contrario, se penalizará gravemente:

i Validar todas las entradas según lo aprendido en clase. Si se va a utilizar alguna herramienta,
instrucción o librería extra, se debe explicar y fundamentar su uso.
ii Desplegar inicialmente un menú con las opciones 1 y 2 y dependiendo de la selección
del usuario desplegará las opciones correspondientes. (Caso de Python, explicar cómo
desplegar el menú)
iii Debe cumplir con todos los requerimientos.
iv Por ninguna razón el programa puede arrojar errores con respecto a las variables
numéricas.

4. Reglas:
• Por equipos: ya conformados en clase.
• La sustentación equivale al 50%, Feria Gamer 20% y el programa enviado al link
correspondiente del catálogo al 30%
• Roles: Entre los integrantes del equipo se deben asignar los roles de Gerente del proyecto,
Diseñador y Desarrollador. Estos roles se deben intercambiar durante la elaboración del
laboratorio.
• Lenguaje de Programación: Java – IDE Netbeans y Python -
• Amabilidad: La interfaz debe ser muy amigable y visualmente agradable al usuario.
• Estructuras permitidas: Solo se deben utilizar las estructuras aprendidas en el semestre.
• No cumplir con la entrega, anula el derecho a presentar y sustentar y la nota del laboratorio
será 0.0
• La copia o el intento de copia será calificado con 0,0 y anotación a la hoja de vida.

5. Entrega y presentación:
El laboratorio cuenta con una (1) entrega en la fecha indicada, a través del link habilitado en la
plataforma una (1) presentación en la Feria Gamer y una sustentación/presentación del programa.

Fecha entrega: 27 de mayo de 2025 hasta las 12:30 p.m.


Formato: Se debe enviar el programa funcional al 100% comprimido en .zip al link correspondiente
en Brigthspace y en carpeta de OneDrive solo por uno de los integrantes. Además, se debe enviar
link de YouTube de un video donde cada integrante se presente y cuente su experiencia en el
desarrollo de este programa según los roles desempeñados y un resumen de cómo fue la
elaboración del mismo. El vídeo no debe sobrepasar los 2.5 minutos. También, se debe enviar los
slides a utilizar en la presentación y un manual de usuario. Al momento del envío en Brigthspace
colocar los nombres de los integrantes del equipo en comentarios.
Fecha sustentación/presentación: 28 de mayo de 2025 en SDU51J. Para la presentación tener en
cuenta que cada equipo tendrá un máximo de 7 minutos. Utilizar presentaciones ejecutivas. Vender
muy bien su producto y no olvidar mostrar lo importante, tener en cuenta los aspectos a calificar. La
presentación será ante jurados invitados. Se debe mostrar un corto video (no superior a 1 minuto)
con la experiencia vivida en el trabajo colaborativo y en el cumplimiento de los diferentes roles.
Fecha presentación Feria Gamer: 5 de junio 2025 en el Coliseo a partir de la 1:30 p.m.
Link OneDrive: Tener en cuenta guardar lo solicitado en la carpeta correspondiente de OneDrive,
adicionar los nombres de cada integrante en el nombre de la carpeta. Si no se sube en esta carpeta se
descontará 1.0 punto de la nota obtenida:
❖ CURSO 4009: 4009
❖ CURSO 4010: 4010
❖ CURSO 4011: 4011

6. Nombre del Laboratorio:


Proyecto: Lab_Final_Iniciales1_ Iniciales2_Iniciales3
Archivo comprimido: Labfinal_Iniciales1_ Iniciales2_Iniciales3

7. Aspectos a Calificar:
1. Creatividad
2. Amigabilidad
3. Cumplimiento en la entrega
4. Organización del código
5. Documentación del código
6. Cumplimiento de instrucciones
7. Video
8. Presentación personal
9. Seguridad en la presentación
10. Presentaciones ejecutivas (Slides)

8. Bonus
8.1 Cálculo de PI (+0.3 en Examen Final): Escribe un algoritmo que calcule una aproximación al número PI
sabiendo que

π/4= 1 – 1/3 + 1/5 – 1/7 + 1/9 – 1/11 …

Y teniendo en cuenta que los ángulos notables son los siguientes: 0°, 30°
8.2 Conversión de sistemas numéricos (+0.3 en Examen Final): Hacer un algoritmo que dado un número
en base 16 (Hexadecimal) con un número específico de dígitos, lo convierta a base 10 (Decimal) y al final
muestre ambos números. Para convertir un número Hexadecimal a decimal se debe multiplicar por 16 cada
dígito de acuerdo con su posición. Ejem. para convertir el número E509 a decimal se procede as:
E509 →14*16^3 + 5*16^2 + 0*16^1 + 9*16^0 = 58633

8.3 Uso de JOption Pane (+0.8 en corte final y +0.3 en Segundo parcial): Usar JOption Pane para todas las
entradas y salidas del programa y además enviar el ejecutable del proyecto. Tener en cuenta que al utilizar
estructuras no vistas en clase deben ser muy bien fundamentadas y sustentadas.

8.4 Auto aprendiendo con Python (+1.0 en Corte Final y +0.5 en Segundo Corte): Implementar la
miscelánea de juegos simulando el JOption Paint de Netbeans.

NOTAS PARA TENER EN CUENTA:


1. Cada equipo tiene derecho a implementar hasta 2 bonos.
2. Para obtener los bonos la nota obtenida en el laboratorio debe ser superior a 4.2 (programa,
sustentación y presentación feria gamer)
3. Los equipos, entre los 20 conformados en los tres NRC a mi cargo, que ocupen los tres primeros lugares
de la feria Gamer obtendrán un bono extra como premio.

También podría gustarte