This repository has been archived by the owner on Jan 3, 2024. It is now read-only.
forked from mouredev/retos-programacion-2023
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request mouredev#6134 from Chrisdev00/Chrisdev00-branch
Reto mouredev#13 - python
- Loading branch information
Showing
1 changed file
with
79 additions
and
0 deletions.
There are no files selected for viewing
79 changes: 79 additions & 0 deletions
79
Retos/Reto #13 - ADIVINA LA PALABRA [Media]/python/Chrisdev00.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
""" | ||
* Crea un pequeño juego que consista en adivinar palabras en un número máximo de intentos: | ||
* - El juego comienza proponiendo una palabra aleatoria incompleta | ||
* - Por ejemplo "m_ur_d_v", y el número de intentos que le quedan | ||
* - El usuario puede introducir únicamente una letra o una palabra (de la misma longitud que | ||
* la palabra a adivinar) | ||
* - Si escribe una letra y acierta, se muestra esa letra en la palabra. Si falla, se resta | ||
* uno al número de intentos | ||
* - Si escribe una resolución y acierta, finaliza el juego, en caso contrario, se resta uno | ||
* al número de intentos | ||
* - Si el contador de intentos llega a 0, el jugador pierde | ||
* - La palabra debe ocultar de forma aleatoria letras, y nunca puede comenzar ocultando más del 60% | ||
* - Puedes utilizar las palabras que quieras y el número de intentos que consideres | ||
""" | ||
|
||
import random | ||
|
||
|
||
def show_random_word (word): | ||
|
||
palabra_a_adivinar = "" | ||
|
||
letra_a_remplazar = random.sample(range(len(word)), int(0.6 * len(word))) | ||
cont = 0 | ||
for i in range(len(word)): | ||
if i in letra_a_remplazar: | ||
palabra_a_adivinar += "_" | ||
cont += 1 | ||
else: | ||
palabra_a_adivinar += word[i] | ||
|
||
print(f"Tienes {cont} intentos para poder adivinar") | ||
return list(palabra_a_adivinar) | ||
|
||
|
||
def show_word (palabra_a_adivinar): | ||
return "".join(palabra_a_adivinar) | ||
|
||
def find_word (palabra_a_adivinar, num): | ||
|
||
trys = 0 | ||
|
||
while trys < num: | ||
user_letter = input("Introduce una letra para adivinar: ").lower() | ||
|
||
if len(user_letter) == 1 and user_letter.isalpha(): # Se verifica que la entrada del usuario sea una sola letra y que sea alfabética | ||
if user_letter in word: | ||
print("Usted adivino una letra") | ||
for i, letra in enumerate(word): | ||
if letra == user_letter: | ||
palabra_a_adivinar[i] = user_letter | ||
|
||
print(f"La palabra actual es: {palabra_a_adivinar}") | ||
|
||
if "_" not in palabra_a_adivinar: | ||
print(f"Felicidades a encontrado la palabra {word}") | ||
break | ||
else: | ||
print("La letra no esta en la palabra intenta de nuevo") | ||
trys += 1 | ||
if trys == intentos: | ||
print("Perdiste no encontraste la palabra oculta") | ||
break | ||
|
||
else: | ||
print("Entrada no valida ingrese una sola letra") | ||
|
||
word_list = ["windows", "tecnologia", "software", "development", "languages", "python", "visual", "program"] | ||
word = random.choice(word_list) | ||
|
||
word_to_guess = show_random_word(word) | ||
print(show_word(word_to_guess)) | ||
|
||
intentos = int(0.6 * len(word)) | ||
find_word(word_to_guess, intentos) | ||
|
||
|
||
|
||
|