JustPaste
HomeCategoriesAboutDonateContactTerms of UsePrivacy Policy
JustPaste

Free online notepad — write and share instantly

Navigate

  • Home
  • Timeline
  • Categories

Info

  • About
  • Donate
  • Contact

Legal

  • Terms of Use
  • Privacy Policy

© 2026 JustPaste.app. All rights reserved.

Made with ♥ by JustPaste

respiratori | JustPaste.app
15 days ago6 views
👨‍💻Programming

respiratori

import random
import unicodedata

# Llista de paraules temàtiques (aparell respiratori)
WORDS = [
    "pulmó", "pulmons", "diafragma", "inspiració", "espiració",
    "tràquea", "laringe", "faringe", "bronqui", "bronquíol",
    "alvèol", "pleura", "ventilació", "oxigenació", "hemoglobina",
    "capil·lar", "mucosa", "secreció", "bronquitis", "asma"
]

HANGMAN_PICS = [
    """
     +---+
         |
         |
         |
        ===""",
    """
     +---+
     O   |
         |
         |
        ===""",
    """
     +---+
     O   |
     |   |
         |
        ===""",
    """
     +---+
     O   |
    /|   |
         |
        ===""",
    """
     +---+
     O   |
    /|\\  |
         |
        ===""",
    """
     +---+
     O   |
    /|\\  |
    /    |
        ===""",
    """
     +---+
     O   |
    /|\\  |
    / \\  |
        ==="""
]

MAX_WRONG = len(HANGMAN_PICS) - 1

def normalize(s):
    # Normalitza per comparar sense accents
    return ''.join(
        c for c in unicodedata.normalize('NFD', s)
        if unicodedata.category(c) != 'Mn'
    ).lower()

def choose_word():
    return random.choice(WORDS)

def display_state(secret, guessed):
    shown = ' '.join([c if normalize(c) in guessed else '_' for c in secret])
    print("\nParaula: ", shown)

def play():
    secret = choose_word()
    norm_secret = normalize(secret)
    guessed = set()
    wrong = 0

    print("=== JOC DEL PENJAT: Aparell respiratori ===")
    print(f"Tens {MAX_WRONG} intents erronis abans del penjat.")
    use_hint = input("Vols una pista? (s/n): ").strip().lower()
    hint_used = False

    while True:
        print(HANGMAN_PICS[wrong])
        display_state(secret, guessed)
        print("Lletres encertades:", ' '.join(sorted(guessed)) if guessed else "(cap)")
        guess = input("Endevina una lletra o la paraula sencera: ").strip().lower()

        if not guess:
            print("Introdueix alguna cosa, si us plau.")
            continue

        # Normalitzar entrada per comparar
        norm_guess = normalize(guess)

        # Si l'usuari demana pista
        if use_hint == 's' and not hint_used:
            # Mostrem una lletra correcta aleatòria
            for ch in norm_secret:
                if ch.isalpha() and ch not in guessed:
                    print(f"Pista: una de les lletres és '{ch}'")
                    guessed.add(ch)
                    hint_used = True
                    break

        # Si l'usuari intenta endevinar la paraula sencera
        if len(norm_guess) > 1:
            if norm_guess == norm_secret:
                print(f"\nEnhorabona! Has encertat la paraula: {secret}")
                break
            else:
                wrong += 1
                print("Paraula incorrecta.")
        else:
            # Una sola lletra
            letter = norm_guess
            if letter in guessed:
                print("Ja has provat aquesta lletra.")
                continue

            if letter in norm_secret:
                guessed.add(letter)
                print("Correcte!")
                # Comprovar si ha guanyat
                if all((normalize(ch) in guessed) or (not ch.isalpha()) for ch in secret):
                    print(f"\nEnhorabona! Has encertat la paraula: {secret}")
                    break
            else:
                guessed.add(letter)
                wrong += 1
                print("No hi és.")

        if wrong >= MAX_WRONG:
            print(HANGMAN_PICS[wrong])
            print(f"\nHas perdut. La paraula era: {secret}")
            break

    print("Gràcies per jugar!")

if __name__ == "__main__":
    play()
← Back to timeline