Pens. comp. para ingeniería

Proyecto: El juego de los 23 cerillos

Objetivo

Durante esta actividad, los alumnos serán capaces de:


Subcompetencias a demostrar con esta evidencia

Competencia Subcompetencia
y nivel de dominio
SING0300:
Solución de problemas

Soluciona problemas de diferentes niveles de complejidad de ingeniería y ciencias, aplicando diversas metodologías en ambientes controlados y de incertidumbre.

SING0301A:
Evaluación del problema

Evalúa los componentes que integran una problemática de acuerdo a principios y procesos relacionados con las ciencias de la ingeniería.

SING0400:
Compromiso con la sustentabilidad

Aplica estándares internacionales y principios de sustentabilidad en la solución de problemas de la ingeniería y ciencias.

SING0401A:
Aplicación de estándares y normas

Aplica los estándares y normas en el ejercicio de su profesión manteniéndolos como referencia a seguir en la solución de problemas de ingeniería y ciencias.

SEG0700:
Transformación digital

Genera soluciones a las problemáticas de su ámbito profesional con la incorporación inteligente y oportuna de tecnologías digitales de vanguardia.

SEG0702A:
Tecnologías de vanguardia

Evalúa diversas tecnologías, con apertura a la búsqueda e implementación de alternativas relevantes en la transformación de la práctica profesional.

Introducción

Es común que las personas al ir aumentando en edad van menguando en sus habilidades cognitivas. Sin embargo, esto no tiene que ser así, es posible que los adultos puedan entrenar su cerebro con juegos que los hagan razonar, recordar o pensar en estrategias para obtener puntos, avanzar o ganar en el juego.

Para este proyecto se te pedirá elaborar un juego que permita desarrollar o mejorar las habilidades cognitivas de los jugadores.

Descripción del juego

Estas son las reglas del juego de los 23 cerillos:

Especificaciones del programa

  1. Este proyecto debe ser elaborado de manera individual.
  2. El programa debe estar escrito en el lenguaje Python 3 y debe implementar puntualmente todas las reglas del juego de los 23 cerillos tal y como están descritas arriba.

  3. Todo el código del programa debe estar compuesto de una serie de funciones contenidas en un Jupyter notebook de Google Colaboratory con el nombre 23cerillos.ipynb.

  4. La primera celda del notebook debe ser una celda de texto que incluya:

    • Nombre del proyecto
    • Fecha
    • Matrícula y nombre del autor
    • Breve descripción del proyecto
  5. Cada función del programa debe ir en su propia celda de código. Antes de esta celda de código debe venir en una celda de texto con una breve descripción del comportamiento de la función.

  6. Al iniciar la ejecución del programa se debe desplegar el título de la aplicación (nombre del programa y autor) y se le debe ofrecer al jugador la opción de ver las instrucciones del juego.

  7. Se debe seleccionar al azar qué jugador (usuario o computadora) le toca tirar primero en cada juego.

  8. Si durante un turno el usuario ingresa una entrada inválida el programa debe desplegar un mensaje de error y solicitar una nueva entrada.

  9. La computadora siempre debe ganar si le toca tirar primero. De lo contrario debe procurar ganar, pero el resultado final dependerá de los tiros del usuario.

  10. Debe estar siempre claro cuántos cerillos toma cada jugador en su turno respectivo. Después de cada turno se debe desplegar cuántos cerillos quedan.

  11. Cuando queda un solo cerillo el programa debe indicar quién fue el ganador.

  12. Al concluir un juego el programa debe preguntarle al usuario si desea jugar otra vez. En caso afirmativo se debe iniciar un nuevo juego.

Ejemplo de corrida

A continuación se proporciona un ejemplo de una corrida completa del programa (la entrada del usuario está en azul):

EL JUEGO DE LOS 23 CERILLOS
===========================
© 2020 por Pepper Pots

¿Deseas ver las instrucciones? (S/N): s

INSTRUCCIONES

Este es un juego para dos jugadores: el primer jugador es
el humano (el usuario del programa) y el segundo jugador es
la máquina (la computadora). Se comienza con 23 cerillos
sobre la mesa. Los jugadores van tomando turnos de manera
alternada. La computadora selecciona al azar a quién le
toca el primer turno. Durante su turno, cada jugador puede
tomar 1, 2 o 3 cerillos. El jugador que tome el último
cerillo pierde.

Comienza la máquina

Quedan 23 cerillos
La máquina va a retirar 2 cerillos

Quedan 21 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): uno
El humano tiene que ingresar un número del 1 al 3
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 5
El humano tiene que ingresar un número del 1 al 3
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 1

Quedan 20 cerillos
La máquina va a retirar 3 cerillos

Quedan 17 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 2

Quedan 15 cerillos
La máquina va a retirar 2 cerillos

Quedan 13 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 3

Quedan 10 cerillos
La máquina va a retirar 1 cerillo

Quedan 9 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 1

Quedan 8 cerillos
La máquina va a retirar 3 cerillos

Quedan 5 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 2

Quedan 3 cerillos
La máquina va a retirar 2 cerillos

Queda 1 cerillo
¡Perdiste!
La máquina ha vencido al humano

¿Deseas volver a jugar? (S/N): s

Comienza el humano

Quedan 23 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 2

Quedan 21 cerillos
La máquina va a retirar 3 cerillos

Quedan 18 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 1

Quedan 17 cerillos
La máquina va a retirar 2 cerillos

Quedan 15 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 2

Quedan 13 cerillos
La máquina va a retirar 1 cerillo

Quedan 12 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 3

Quedan 9 cerillos
La máquina va a retirar 2 cerillos

Quedan 7 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 2

Quedan 5 cerillos
La máquina va a retirar 3 cerillos

Quedan 2 cerillos
¿Cuántos cerillos quiere retirar el humano? (1, 2, 3): 1

Queda 1 cerillo
¡Ganaste!
El humano ha vencido a la máquina

¿Deseas volver a jugar? (S/N): n

Gracias por jugar. ¡Hasta la vista, baby!

¿Qué se debe entregar?

Instrucciones para subir archivo

Para entregar el archivo 23cerillos.ipynb, ingresa los siguientes datos:

Solicitar NIP

Fecha límite: Lunes, 19 de octubre.