Cum să creezi primul tău joc
Creează primul tău joc în Python: un joc de ghicit numărul în terminal, apoi o introducere în pygame. Cod complet, explicat pas cu pas pentru începători.
Aproape toți care ajung programatori au început fiindcă voiau să facă un joc. E cea mai distractivă cale de a învăța, fiindcă vezi imediat rezultatul și ai chef să-l îmbunătățești. Hai să construim primul tău joc, de la cel mai simplu la o fereastră grafică.
Începem cu un joc de terminal
Înainte de grafică, cel mai bun prim joc e „Ghicește numărul". Calculatorul alege un număr secret, iar tu încerci să-l ghicești; el îți spune dacă e prea mare sau prea mic.
import random
def joc_ghicit():
secret = random.randint(1, 100)
incercari = 0
print("M-am gândit la un număr între 1 și 100. Ghicește!")
while True:
ghici = int(input("Numărul tău: "))
incercari += 1
if ghici < secret:
print("Prea mic. Mai sus!")
elif ghici > secret:
print("Prea mare. Mai jos!")
else:
print(f"Bravo! Ai ghicit din {incercari} încercări.")
break
joc_ghicit()
Atât. Ai un joc funcțional. Folosește random pentru număr, o buclă while pentru reluare și condiții pentru indicii. Joacă-l de câteva ori și gândește-te: care e strategia cea mai rapidă de a ghici? (Răspuns: căutarea binară — împarți mereu intervalul la jumătate.)
Hai să-l facem mai bun
Adaugă o limită de încercări ca să fie mai palpitant:
maxim = 7
if incercari >= maxim:
print(f"Gata! Numărul era {secret}. Mai încearcă.")
break
Cu mici modificări ca asta, un joc simplu devine surprinzător de captivant.
Nu subestima jocurile de terminal. Logica dintr-un joc text e exact aceeași care stă în spatele jocurilor grafice — doar afișarea diferă.
Pasul următor: o fereastră cu pygame
Când vrei grafică reală — sprite-uri, mișcare, sunet — folosești o bibliotecă de jocuri. Cea mai populară pentru începători în Python e pygame. O instalezi o singură dată:
# în terminal:
# pip install pygame
Orice joc grafic are aceeași structură: o buclă principală care, de zeci de ori pe secundă, citește input-ul, actualizează starea și redesenează ecranul.
import pygame
pygame.init()
ecran = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Primul meu joc")
ceas = pygame.time.Clock()
x, y = 300, 200 # poziția unui pătrat
viteza = 5
ruleaza = True
while ruleaza:
# 1. citim evenimentele
for ev in pygame.event.get():
if ev.type == pygame.QUIT:
ruleaza = False
# 2. actualizăm starea în funcție de taste
taste = pygame.key.get_pressed()
if taste[pygame.K_LEFT]:
x -= viteza
if taste[pygame.K_RIGHT]:
x += viteza
if taste[pygame.K_UP]:
y -= viteza
if taste[pygame.K_DOWN]:
y += viteza
# 3. desenăm tot
ecran.fill((20, 20, 40)) # fundal
pygame.draw.rect(ecran, (0, 200, 120), (x, y, 40, 40))
pygame.display.flip() # arătăm cadrul
ceas.tick(60) # maxim 60 de cadre pe secundă
pygame.quit()
Rulează-l și vei avea un pătrat verde pe care îl miști cu săgețile. Felicitări — ai făcut un joc grafic!
Cele trei părți ale oricărui joc
| Etapă | Ce face |
|---|---|
| Input | citește tastele, mouse-ul, evenimentele |
| Update | schimbă pozițiile, scorul, regulile |
| Render | desenează totul pe ecran |
Toate jocurile, de la Tetris la jocuri 3D, repetă aceste trei etape în buclă. Dacă înțelegi asta, ai înțeles esența.
Idei pentru următorul tău joc
- adaugă un scor și un obiect de „colectat" care apare aleator;
- pune o limită de timp și un ecran de Game Over;
- adaugă un inamic care se mișcă singur și pe care trebuie să-l eviți;
- pune sunet la coliziuni cu
pygame.mixer.
Recapitulare
Ai pornit de la un joc de câteva linii și ai ajuns la o fereastră interactivă. Pe drum ai folosit random, bucle, condiții, input și bucla principală de joc. Acum ai tot ce-ți trebuie ca să experimentezi.
La ByteSchool transformăm pasiunea pentru jocuri în abilități reale de programare, pas cu pas, alături de mentori care au lucrat în Big Tech. Vino să construim împreună jocul la care visezi.