Durante esta actividad, los alumnos serán capaces de:
Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.
Este proyecto puede ser elaborado de manera individual o en parejas.
Desarrollar en Python 3.5 una aplicación que implemente el juego de Rompe Códigos, que es una variación del juego comercial conocido como “Mastermind” de Pressman Toys.
Consideraciones:
exists importable del módulo os.path, por ejemplo:
from os.path import exists if exists('algun_archivo.txt'): # Hacer algo con el archivo.
A continuación se proporciona un ejemplo extenso de una corrida completa del programa (la entrada del usuario está en azul):
** ROMPE CÓDIGOS **
Menú
===================
1. Jugar
2. Configuración
3. Salir
===================
Selecciona una opción: 2
----- Configuración -----
Longitud del código a romper : 4
Letras distintas posibles : 6
Máximo número de intentos : 10
¿Deseas modificar estos valores? (s/n): n
** ROMPE CÓDIGOS **
Menú
===================
1. Jugar
2. Configuración
3. Salir
===================
Selecciona una opción: 1
Intentos restantes para romper el código: 10
Teclea una cadena de 4 caracteres de la A a la F: abcd
Letras en posición incorrecta : 1
Letras en posición correcta : 2
Intentos restantes para romper el código: 9
Teclea una cadena de 4 caracteres de la A a la F: abed
Letras en posición incorrecta : 2
Letras en posición correcta : 1
Intentos restantes para romper el código: 8
Teclea una cadena de 4 caracteres de la A a la F: dbcf
Letras en posición incorrecta : 1
Letras en posición correcta : 1
Intentos restantes para romper el código: 7
Teclea una cadena de 4 caracteres de la A a la F: eabd
Letras en posición incorrecta : 3
Letras en posición correcta : 0
Intentos restantes para romper el código: 6
Teclea una cadena de 4 caracteres de la A a la F: baef
Letras en posición incorrecta : 3
Letras en posición correcta : 0
Intentos restantes para romper el código: 5
Teclea una cadena de 4 caracteres de la A a la F: cbea
Letras en posición incorrecta : 4
Letras en posición correcta : 0
Intentos restantes para romper el código: 4
Teclea una cadena de 4 caracteres de la A a la F: abec
Letras en posición incorrecta : 3
Letras en posición correcta : 1
Intentos restantes para romper el código: 3
Teclea una cadena de 4 caracteres de la A a la F: acbe
Letras en posición incorrecta : 3
Letras en posición correcta : 1
Intentos restantes para romper el código: 2
Teclea una cadena de 4 caracteres de la A a la F: aecb
Letras en posición incorrecta : 0
Letras en posición correcta : 4
¡Felicidades!
Rompiste el código en 9 intentos.
** ROMPE CÓDIGOS **
Menú
===================
1. Jugar
2. Configuración
3. Salir
===================
Selecciona una opción: 2
----- Configuración -----
Longitud del código a romper : 4
Letras distintas posibles : 6
Máximo número de intentos : 10
¿Deseas modificar estos valores? (s/n): s
Longitud del código a romper : cinco
cinco no es un número entero positivo válido.
Longitud del código a romper : -10
-10 no es un número entero positivo válido.
Longitud del código a romper : 5
Letras distintas posibles : 4
El número debe estar entre 5 y 26.
Letras distintas posibles : 26
Máximo número de intentos : infinito
infinito no es un número entero positivo válido.
Máximo número de intentos : 1000
El número debe estar entre 1 y 99.
Máximo número de intentos : 2
Los cambios han sido guardados exitosamante.
** ROMPE CÓDIGOS **
Menú
===================
1. Jugar
2. Configuración
3. Salir
===================
Selecciona una opción: 1
Intentos restantes para romper el código: 2
Teclea una cadena de 5 caracteres de la A a la Z: abcde
Letras en posición incorrecta : 1
Letras en posición correcta : 0
Intentos restantes para romper el código: 1
Teclea una cadena de 5 caracteres de la A a la Z: vwzyz
La cadena no debe tener caracteres repetidos.
Teclea una cadena de 5 caracteres de la A a la Z: uvwxyz
La cadena debe ser de exactamente 5 caracteres.
Teclea una cadena de 5 caracteres de la A a la Z: vwxyz
Letras en posición incorrecta : 1
Letras en posición correcta : 2
Ya llegaste al número máximo de intentos.
El código era: CTXVZ
** ROMPE CÓDIGOS **
Menú
===================
1. Jugar
2. Configuración
3. Salir
===================
Selecciona una opción: 4
Opción inválida.
** ROMPE CÓDIGOS **
Menú
===================
1. Jugar
2. Configuración
3. Salir
===================
Selecciona una opción: tres
Opción inválida.
** ROMPE CÓDIGOS **
Menú
===================
1. Jugar
2. Configuración
3. Salir
===================
Selecciona una opción: 3
Bye!
Tu programa debe estar en un solo archivo llamado rompe_codigos.py e incluir en la parte superior un comentario con nombre y matrícula de los autores, por ejemplo:
# Autores: # A01166611 Pepper Pots # A01160611 Anthony Stark # # Descripción del programa. # # Noviembre 30, 2016. . . (El resto del programa va aquí) .
Para entregar el archivo rompe_codigos.py, ingresa los siguientes datos:
Si el proyecto fue desarrollado por un equipo de dos personas, basta que una persona lo entregue.
Fecha límite: Miércoles, 30 de noviembre.