以下は、あなたがおっしゃる条件を満たすコードの例です：

Python:
```
import random

def juego_del_ahogado(palabra_secreta):
    vidas = 5
    letras_usadas = []
    palabra_progreso = ["_" for letra in palabra_secreta]

    while "_" in palabra_progreso and vidas > 0:
        letra = input("Adivina una letra: ")

        if not letra.isalpha():
            print("Por favor ingresa solo letras")
            continue

        if len(letra) != 1:
            print("Por favor ingresa solo una letra a la vez")
            continue

        if letra in letras_usadas:
            print(f"Ya has usado la letra '{letra}' antes")
            continue

        letras_usadas.append(letra)

        if letra in palabra_secreta:
            for i, l in enumerate(palabra_secreta):
                if l == letra:
                    palabra_progreso[i] = letra
        else:
            vidas -= 1
            print(f"La letra '{letra}' no está en la palabra. Te quedan {vidas} vidas")

        print(" ".join(palabra_progreso))

    if "_" not in palabra_progreso:
        print("¡Ganaste!")
    else:
        print(f"Perdiste. La palabra era '{palabra_secreta}'")

if __name__ == "__main__":
    with open("palabras.txt", "r") as f:
        palabras = f.readlines()
    palabra_secreta = random.choice(palabras).strip()
    juego_del_ahogado(palabra_secreta)
```

このコードでは、openメソッドとwith文を使って、ゲームで使われる単語が書かれたテキストファイルを読み込んでいる。秘密の単語は単語のリストからランダムに選ばれ、drown_game関数の引数として渡されます。この関数は、使用された文字と残りのライフを記録し、ユーザーの入力が以前に使用されたことのない有効な文字であるかどうかをチェックする。その文字が秘密の単語の中にあれば、進行中の単語が更新され、そうでなければライフが引かれる。ゲームは、ユーザーが秘密の単語を当てるか、ライフがなくなるまで続けられる。最後に、ユーザーが勝ったか負けたかが表示されます。
Aquí tienes un ejemplo de código que cumple con las condiciones que mencionas:

Python:

import random

def juego_del_ahogado(palabra_secreta):
    vidas = 5
    letras_usadas = []
    palabra_progreso = ["_" for letra in palabra_secreta]

    while "_" in palabra_progreso and vidas > 0:
        letra = input("Adivina una letra: ")

        if not letra.isalpha():
            print("Por favor ingresa solo letras")
            continue

        if len(letra) != 1:
            print("Por favor ingresa solo una letra a la vez")
            continue

        if letra in letras_usadas:
            print(f"Ya has usado la letra '{letra}' antes")
            continue

        letras_usadas.append(letra)

        if letra in palabra_secreta:
            for i, l in enumerate(palabra_secreta):
                if l == letra:
                    palabra_progreso[i] = letra
        else:
            vidas -= 1
            print(f"La letra '{letra}' no está en la palabra. Te quedan {vidas} vidas")

        print(" ".join(palabra_progreso))

    if "_" not in palabra_progreso:
        print("¡Ganaste!")
    else:
        print(f"Perdiste. La palabra era '{palabra_secreta}'")

if __name__ == "__main__":
    with open("palabras.txt", "r") as f:
        palabras = f.readlines()
    palabra_secreta = random.choice(palabras).strip()
    juego_del_ahogado(palabra_secreta)

Este código usa el método open con la sentencia with para leer un archivo de texto con las palabras que se van a utilizar en el juego. La palabra secreta se elige al azar de la lista de palabras y se pasa como argumento a la función juego_del_ahogado. La función mantiene un registro de las letras usadas y las vidas restantes, y verifica que la entrada del usuario sea una letra válida que no se haya usado antes. Si la letra está en la palabra secreta, se actualiza la palabra de progreso, de lo contrario, se resta una vida. El juego continúa hasta que el usuario adivine la palabra secreta o se quede sin vidas. Al final, se muestra si el usuario ganó o perdió.