Treceți la conținutul principal

Spânzurătoarea - un joc simplu în Python

Spânzurătoarea - un joc simplu în Python


Spânzurătoarea este un joc de ghicit litere: unul alege un cuvânt secret, ceilalți încearcă să-l ghicească propunând litere. Pentru fiecare literă greșită, se desenează o parte dintr-un omuleț (sau dintr-un roboțel/om de zăpadă/astronaut). Dacă ghiciți cuvântul înainte să fie complet desenat, ați câștigat! 




Cum se joacă pe hârtie

  1. Alege cuvântul (ex.: „LAPTOP”).

  2. Desenează liniuțe pentru fiecare literă: _ _ _ _ _ _.

  3. Echipa ghicește litere pe rând:

    • Dacă litera există, o scrii la locul potrivit: L _ P T O P.

    • Dacă nu, adaugi o mică parte din desen (cap, corp, brațe, picioare… sau piese de robot).

  4. Finalul: ați completat cuvântul ⇒ Bravo!; ați epuizat toate încercările ⇒ încercați din nou cu un cuvânt mai ușor.


Trucuri istețe (strategie)

  • Începe cu vocale: A, E, I, O, U.

  • Litere frecvente în română: R, S, T, N, L.

  • Gândește pe categorii: dacă știi tema (ex. „animale”), verifică litere potrivite: M, R, S…

  • Caută perechi: CERARELATAST.


Idei de variante simpatice

  • Temă prietenoasă: în loc de „spânzurătoare”, construiești un om de zăpadă (cap, fular, nasturi…), un robot, sau o rachetă (corp, hublou, aripi).

  • Mod cooperativ: toți contra cuvântului; câștigați sau pierdeți împreună.

  • Cronometru: aveți 60 de secunde pentru fiecare 3 litere.

  • Categorii pentru copii:

    • Animale (VULPE, PISICĂ, DELFIN)

    • Școală (CAIET, CRETĂ, TABLĂ)

    • Sport (TENIS, FOTBAL, KART)

    • Tehnologie (MOUSE, ECRAN, ROBOT)


Mini-exemplu

Cuvânt: ROBOT
Litere propuse: 

  1. O (da) → _ O _ O _
  2. R (da) → R O _ O _
  3. A (nu) → adaugi o piesă la robot
  4. T (da) → R O _ O T
  5. B (da) → R O B O T ⇒ Victorie! 🤖


Jocul în pseudocod simplu (ușor de transformat în orice limbaj)

ALGORITM GhicesteCuvant
  alege cuvant_secret dintr-o lista_de_cuvinte
  litere_ghicite ← mulțime goală
  vieti ← 6            // numărul de piese/greșeli permise

  CAT TIMP (vieti > 0) SI (NU toate_literele_din(cuvant_secret) sunt in litere_ghicite) FA
    afiseaza_mascat(cuvant_secret, litere_ghicite)  // ex. _ A _ A _
    afiseaza("Litere încercate: ", litere_ghicite)
    litera ← citeste_litera_de_la_jucator()

    DACA litera este deja in litere_ghicite ATUNCI
       afiseaza("Ai încercat litera asta. Încearcă alta!")
    ALTFEL
       adauga litera in litere_ghicite
       DACA litera este in cuvant_secret ATUNCI
          afiseaza("Bravo! Litera se potrivește.")
       ALTFEL
          vieti ← vieti - 1
          afiseaza("Ups! Litera nu există. Vieți rămase: ", vieti)
          deseneaza_o_piesa()  // cap, corp, brațe, picioare/robot/rachetă
       SFARSIT_DACA
    SFARSIT_DACA
  SFARSIT_CAT_TIMP

  DACA toate_literele_din(cuvant_secret) sunt in litere_ghicite ATUNCI
     afiseaza("Ai ghicit cuvântul: " + cuvant_secret + " 🎉")
  ALTFEL
     afiseaza("Jocul s-a terminat. Cuvântul era: " + cuvant_secret + " 🙂")
  SFARSIT_DACA
SFARSIT_ALGORITM

O varianta simplificată în Python

Iata o varianta simplă a jocului Spânzurătoarea, preluata din "Capitolul 5 – Evenimente aleatorii și surprize în joc" al cărții "Programare simplă cu Python: Creează jocuri pas cu pas".

import random

print("Bine ai venit la jocul BONUS: Spânzurătoarea!")
print("Ghicește cuvântul literă cu literă.")

# Lista de cuvinte
cuvinte = ["python", "aventura", "magie", "padure", "sabie"]

# Alegem un cuvânt aleator
cuvant_secret = random.choice(cuvinte)
ghicit = ["_"] * len(cuvant_secret)  # listă cu liniuțe pentru fiecare literă

incercari = 6  # numărul maxim de greșeli

while incercari > 0 and "_" in ghicit:
    print("\nCuvânt:", " ".join(ghicit))
    litera = input("Alege o literă: ").lower()

    if litera in cuvant_secret:
        print("Bravo! Litera este în cuvânt.")
        for i, l in enumerate(cuvant_secret):
            if l == litera:
                ghicit[i] = litera
    else:
        incercari -= 1
        print(f"Litera nu există. Mai ai {incercari} încercări.")

if "_" not in ghicit:
    print("\nFelicitări! Ai ghicit cuvântul:", cuvant_secret)
else:
    print("\nAi pierdut! Cuvântul era:", cuvant_secret)

De ce e un joc grozav?

  • Te ajută la vocabularlogică și atenție.

  • Se joacă oriunde: pe hârtie, la tablă sau pe calculator.

  • Îl poți face mai ușor (cuvinte scurte) sau mai greu (cuvinte lungi, compuse).


Comentarii

Postări populare de pe acest blog

Programare simplă cu Python: Creează jocuri pas cu pas

  De ce această carte este diferită Această carte nu este o simplă carte de programare. Este o călătorie unde tu ești eroul! Vom construi pas cu pas un joc de aventură text , în care vei învăța programarea fără să simți că „faci teme”. Fiecare linie de cod pe care o vei scrie va adăuga magie poveștii: de la afișarea primului mesaj „Salut, aventurierule!” până la lupta finală cu Dragonul. Cum funcționează cartea: În fiecare capitol, adăugăm o nouă piesă la joc: un mesaj, o hartă, un inamic, un inventar. Fiecare capitol are explicații clare pentru conceptele Python. Vei găsi casete bonus cu jocuri extra (mini-ghicitori, Simon Says, spânzurătoarea). La final, vei avea un joc complet pe care îl poți juca cu prietenii sau îl poți extinde cu ideile tale. Cuprins Capitolul 1 - Bun venit în lumea jocurilor text în Python Capitolul 2 -  Decizii și primele hărți ale aventurii

Algoritmul de sortare al numerelor Bubble Sort

Limbajele de programare moderne au librarii extinse care implementează diversi algoritmi de sortare, căutare, calcule matematice, fiind ușor de folosit. Dar un programator la început de drum poate învața cum funcționează limbajul analizând  cum sunt implementați unii algoritmi.  🧼 Cum functioneazã „Bubble Sort”? Gândește-te că ai mai multe bile colorate cu numere scrise pe ele: 👉 4, 6, 5, 1, 3, 2 Le pui într-un rând și vrei să le așezi în ordine de la cel mai mic la cel mai mare. 🫧 Cum funcționează? Te uiți la primele două bile. Dacă prima e mai mare decât a doua, le schimbi locul. (Așa cum ai pune o bilă mai mare mai în spate.) Treci mai departe la următoarea pereche. Compari bilele 2 și 3, apoi 3 și 4, și tot așa. De fiecare dată, cea mai mare bilă „urcă” spre capătul rândului, la fel cum o bulă de aer urcă la suprafața apei — de aici și numele „ Bubble Sort ”! Când ai ajuns la finalul rândului , cea mai mare bilă e deja la locul ei. Acum reiei pașii p...

O introducere în programarea C și a interfețelor grafice

Am început traducerea in limba  română  a cărții "An Introduction to C and GUI Programming" (2nd Edition), de  Simon Long,  actualizată pentru GTK 3. Cartea oferă o introducere completă în programarea C, de la concepte de bază până la crearea de aplicații grafice complexe folosind biblioteca GTK. O puteti accesa gratuit la aceasta adresa:  https://github.com/danadrianparaschiv/techlabjunior/tree/main/Introducere_programare_C_si_interfete_grafice Structura cărții Cartea este împărțită în două părți principale: Partea I: Programare C (Capitolele 1-12) Primele 12 capitole acoperă fundamentele limbajului C: Introducere  - Ce este C și de ce să-l învățați Variabile și aritmetica  - Tipuri de date și operații matematice Condiții și comparații  - Instrucțiuni if-else și bucle while Control avansat al fluxului  - Bucle for și instrucțiuni switch Pointeri  - Lucrul cu adrese de memorie Funcții  - Organizarea codului în funcții reutilizabile ...