Mini projekat — Pogodi broj u Pythonu
U ovom Python mini projektu za početnike napravićemo jednostavnu konzolnu igru „Pogodi broj“ u Pythonu. Kroz ovaj primer naučićeš kako da koristiš while petlju, if / else grananje, kao i unos podataka pomoću input() funkcije. Ovaj zadatak je idealan kao praktična Python vežba i jedan od najčešćih programerskih zadataka za početnike.
1. Opis igre „Pogodi broj“
- Računar nasumično bira broj između 1 i 100.
- Korisnik pokušava da pogodi broj unosom sa tastature.
- Program koristi Python grananje da kaže da li je broj manji ili veći.
- Igra koristi Python while petlju za ponavljanje pokušaja.
- Igra se završava kada korisnik pogodi broj ili potroši sve pokušaje.
2. Osnovni kod igre
Počnimo od osnovne verzije igre. Kasnije ćemo je unaprediti.
import random
tajni_broj = random.randint(1, 100)
pokusaj = None
print("Pogodi broj između 1 i 100!")
while pokusaj != tajni_broj:
pokusaj = int(input("Unesi svoj broj: "))
if pokusaj < tajni_broj:
print("Broj je veći!")
elif pokusaj > tajni_broj:
print("Broj je manji!")
else:
print("Čestitamo! Pogodio si broj:", tajni_broj)
3. Poboljšana verzija igre
U stvarnim programima nikada ne treba da pretpostavimo da će korisnik uvek uneti ispravan podatak. Zato dodajemo validaciju unosa, brojač pokušaja i ograničenje pokušaja.
import random
tajni_broj = random.randint(1, 100)
max_pokusaja = 10
brojac = 0
print("Pogodi broj između 1 i 100!")
print("Imaš", max_pokusaja, "pokušaja.")
print("Unesi 0 ako želiš da prekineš igru.")
while brojac < max_pokusaja:
try:
pokusaj = int(input("Unesi svoj broj: "))
except ValueError:
print("Greška! Moraš uneti ceo broj.")
continue
if pokusaj == 0:
print("Igra prekinuta. Tajni broj je bio:", tajni_broj)
break
brojac += 1
if pokusaj < tajni_broj:
print("Broj je veći!")
elif pokusaj > tajni_broj:
print("Broj je manji!")
else:
print("Čestitamo! Pogodio si broj u", brojac, "pokušaja!")
break
else:
print("Nažalost, potrošio si sve pokušaje.")
print("Tajni broj je bio:", tajni_broj)
4. Objašnjenje važnih delova koda
- random.randint(1, 100) — bira nasumičan ceo broj u zadatom opsegu.
- try / except — sprečava rušenje programa ako korisnik unese tekst.
- brojac — prati koliko puta je korisnik pokušao da pogodi broj.
- while brojac < max_pokusaja — ograničava trajanje igre.
- break — prekida petlju kada je igra završena.
5. Zadaci za vežbu
- Omogući korisniku da sam izabere opseg brojeva (npr. 1–50 ili 1–500).
- Dodaj nivoe težine (lako, srednje, teško).
- Sačuvaj sve unete brojeve u listu i prikaži ih na kraju igre.
- Dodaj opciju da korisnik može ponovo da igra bez ponovnog pokretanja programa.
Ovaj mini projekat predstavlja važan korak ka pravljenju pravih Python programa. Kada razumeš ovu igru, bićeš spreman za složenije projekte, rad sa funkcijama i strukturama podataka.
Dodatak: Proširena verzija igre
U prethodnom primeru video si osnovnu verziju igre. Sada ćemo je malo unaprediti kako bi se ponašala realnije i bila otpornija na pogrešan unos korisnika.
1. Ograničavanje broja pokušaja
U većini igara igrač nema neograničen broj pokušaja. Zato uvodimo promenljivu koja određuje maksimalan broj pokušaja i brojač koji prati koliko puta je korisnik pokušao.
max_pokusaja = 10
brojac = 0
Ove promenljive koristimo u while petlji kako bi se igra automatski završila kada se potroše svi pokušaji.
2. Provera ispravnosti unosa
Do sada smo pretpostavljali da korisnik uvek unosi ceo broj. U praksi to često nije slučaj — korisnik može uneti slovo ili neki simbol.
Kako bismo sprečili grešku i prekid programa, koristimo try / except blok.
try:
pokusaj = int(input("Unesi svoj broj: "))
except ValueError:
print("Greška! Moraš uneti ceo broj.")
continue
Ako dođe do greške, program ispisuje poruku i vraća se na sledeći krug petlje, umesto da se sruši.
3. Mogućnost prekida igre
Dobro je korisniku dati kontrolu nad programom. U ovom primeru dozvoljavamo prekid igre ako korisnik unese broj 0.
if pokusaj == 0:
print("Igra prekinuta.")
break
Komanda break prekida while petlju i završava igru. Ovo je jednostavan, ali veoma koristan mehanizam u interaktivnim programima.
4. Poruka nakon završetka igre
Kada se igra završi (bilo pogotkom ili istekom pokušaja), važno je da korisnik dobije jasnu povratnu informaciju.
print("Tajni broj je bio:", tajni_broj)
Ovakve poruke čine program prijatnijim za korišćenje i lakšim za razumevanje.
U narednim lekcijama naučićemo kako da ovaj kod dodatno unapredimo korišćenjem funkcija i učinimo ga preglednijim i ponovo upotrebljivim.
Dalje učenje – povezane Python lekcije
Ako želiš da proširiš znanje i bolje razumeš koncepte korišćene u ovoj igri, preporučujemo sledeće lekcije koje su direktno povezane sa ovim mini projektom:
- Python while i for petlje – objašnjenje i primeri
- Python grananje (if / elif / else)
- Unos i ispis podataka u Pythonu (input i print)
- Liste u Pythonu – čuvanje i obrada više vrednosti
- Python mini projekti za početnike
Ove lekcije će ti pomoći da bolje razumeš kako Python programi funkcionišu i pripremiće te za sledeći korak — rad sa funkcijama i složenijim projektima.