ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL
FUNDAMENTOS DE PROGRAMACIÓN
PARALELO 36
SEGUNDO AVANCE DEL PROYECTO PARCIAL
Objetivo: Aplicar conocimientos de operadores, strings, lazos, y funciones.
Este avance se basará en el avance 02.
Requerimientos:
1. La generación de los puestos aleatorios sin repetir de la palabra deberá estar dentro de una
función que reciba el número n de puestos aleatorios y el número máximo del rango maxrango y
retorne una lista de n números aleatorios sin repetir dentro del rango 0 y maxrango.
def numAleatorios(n,maxrango):
2. Implemente una función que muestre el menú principal al usuario. Luego pida que el usuario
elija la opción:
1. Jugar
2. Ingresar número de turnos
3. Ingresar número de puestos aleatorios
4. Salir
Ingrese una opción:
• Si el usuario presiona 4 saldrá del juego y finaliza el programa.
• Si el usuario presiona 1 se inicia una partida:
o Una partida corresponde a 8 turnos (a menos que haya indicado otro valor en la
opción 2. Ingresar número de turnos).
o En el primer turno se tomará una palabra aleatoria de las lista palabras.
o Se generará 4 (a menos que haya indicado otro valor en la opción 3. Ingresar
número de puestos aleatorios) puestos aleatorios sin repetir de la palabra (puede
ocurrir que hayan dos letras iguales en dos índices diferentes). Se mostrarán los 4
puestos con un * y todas las letras comunes en la palabra. Por ejemplo, si la
palabra es “ESCRITORIO” y los 4 puestos aleatorios son 2, 3, 4, 8 e incluyen las
letras C, R, I. Como R se encuentra dos veces repetida en la palabra también se
coloca un * sobre la segunda R con índice 7. La palabra se mostrará de la
siguiente forma “ES***TO**O”.
o En cada turno se le pedirá al usuario que ingrese una letra para completar la
palabra.
o Si la letra se encuentra en la palabra se mostrará la palabra con la letra adivinada.
Por ejemplo, si en “ES***TO**O” se ingresa la letra C se muestra,
“ESC**TO**O”.
o Si la letra se encuentra más de una vez en la palabra, se muestran todos los
espacios con la letra, por ejemplo, si en “ES***TOR*O” se ingresa la letra I se
muestra en el siguiente turno la palabra “ES**ITORIO”.
o El jugador gana un punto por cada letra de la palabra adivinada. Para el ejemplo
de la ‘I’ en “ESCRITORIO” el jugador ganaría dos puntos.
o Si el usuario adivina todas las letras de la palabra dentro de los 8 turnos el
programa lo felicita, le muestra su puntaje y el programa finaliza.
o Si la letra no se encuentra en la palabra, se le indicará al usuario y se procederá al
siguiente turno y no ganará puntaje.
o Si al usuario se le acaban los turnos, se mostrará el puntaje acumulado, las letras
escondidas, la palabra completa que no adivinó.
o Una vez jugado todos los turnos deberá regresar al menú principal.
• Si el usuario presiona 2 le pedirá al usuario que ingrese el número de turnos que tendrá
cada partida. Luego de esto se deberá regresar al menú principal.
• Si el usuario presiona 3 le pedirá el número de puestos aleatorios sin repetir de la palabra.
Luego de esto se deberá regresar al menú principal.
Usted es libre de crear más funciones si considera necesario.
Validaciones:
1. Validar que el jugador ingrese una opción válida del menú, si no lo hace vuelve a pedir
una opción hasta que ingrese un valor correcto.
2. Validar que el jugador ingrese una letra del alfabeto o sino a pedir una letra hasta que
ingrese una.
3. Validar que el usuario ingrese un número de turnos mayor a 0.
4. Validar que el usuario ingrese un número de puestos aleatorios mayor a 0, y si el número
es mayor que la longitud de la palabra, que muestre toda la palabra con *.
Restricciones:
- El trabajo es grupal de 2 integrantes.
“Recuerde que el trabajo es por grupo y que cualquier acto de plagio a código de terceros será
sancionado con la mínima calificación de cero”
Entregables:
- Entregar el código fuente del programa en un archivo “.py” con los apellidos de los integrantes
y subirlo a SIDWEB dentro del tiempo especificado