Acest tutorial simplu de joc vă va ajuta să exersați elementele de bază ale programării Python.
Crearea unui joc „Piatră, hârtie, foarfece” în Python este o modalitate excelentă de a vă îmbunătăți abilitățile de programare. Puteți crea jocul cu un singur script Python și îl puteți juca pe linia de comandă.
Jocul începe prin a cere jucătorului alegerea: „piatră”, „hârtie” sau „foarfecă”. Apoi așteaptă să introducă răspunsul. Puteți juca jocul împotriva unui jucător „computer”, care își va selecta automat mișcarea.
Jocul poate include și multe runde. Deci, chiar dacă pierzi prima rundă, poți încerca să câștigi două din trei!
Cum să configurați jocul și să cereți jucătorului mișcarea sa
Când începe jocul, programul Python ar trebui să-i ceară jucătorului să introducă fie „piatră”, „hârtie” sau „foarfece” și să ia răspunsul jucătorului. Pentru a configura un joc nou, începeți prin a crea un nou fișier Python cu extensia .py.
Codul complet pentru acest tutorial este disponibil în un depozit GitHub.
- Creați un fișier nou numit RockPaperScissors.py.
- Deschideți noul fișier Python folosind orice editor de text, cum ar fi Notepad++ sau Visual Studio Code.
- În partea de sus a fișierului, importați modulul aleatoriu. Veți folosi acest lucru mai târziu în joc pentru a selecta aleatoriu o mișcare pentru rândul computerului.
import Aleatoriu
- Prezentați un mesaj jucătorului, cerându-i să introducă fie piatră, hârtie, fie foarfece.
userChoice = input(„Piatră, hârtie sau foarfece? ").inferior()
- Inițializați o matrice numită „moveOptions” care stochează o listă a mișcărilor disponibile pe care fie dumneavoastră, fie computerul le puteți juca.
moveOptions = [„stâncă”, 'hârtie', 'foarfece']
- Când jucătorul introduce o intrare, validează-o pentru a te asigura că este una dintre mișcările disponibile. Odată ce jucătorul a introdus o mișcare validă, tipăriți un mesaj de confirmare.
in timp ce (UserChoice nu în moveOptions):
userChoice = input(„Alegere nevalidă. Trebuie să fie piatră, hârtie sau foarfece: ").inferior()
imprimare("")
imprimare(f"Tu ai ales {userChoice}.")
Cum să faci ture cu computerul și să compari mișcările
Odată ce ați introdus mișcarea, computerul își va lua rândul selectând aleatoriu fie „piatră”, „hârtie”, fie „foarfece”. Jocul va trebui apoi să compare mutarea ta cu mutarea computerului pentru a determina cine a câștigat.
- Utilizați modulul aleatoriu pentru a determina computerul să selecteze aleatoriu din lista de mișcări disponibile.
computerChoice = random.choice (moveOptions)
imprimare(f"Calculatorul a ales {computerChoice}.") - Va trebui să comparați mutarea dvs. cu mutarea computerului pentru a determina cine a câștigat. Puteți face acest lucru creând un nou dicționar. Acest dicționar conține fiecare mișcare (de exemplu, „piatră”) și pentru ce mișcare câștigă sau pierde (de exemplu, „piatră” învinge „foarfecă” și pierde în fața „hârtiei”).
miscari = {
„stâncă”: { "bate": 'foarfece', 'losesTo': 'hârtie' },
'foarfece': { "bate": 'hârtie', 'losesTo': „stâncă” },
'hârtie': { "bate": „stâncă”, 'losesTo': 'foarfece' },
} -
Utilizați instrucțiunea Python if pentru a verifica dacă mutarea ta și mutarea computerului duc la egalitate. În caz contrar, utilizați dicționarul de mișcări pentru a compara mișcarea jucătorului cu mutarea computerului.
De exemplu, dacă ați ales „rock”, atunci valoarea mișcărilor[userChoice]['beats'] ar fi „foarfece”. Dacă alegerea computerului a fost „foarfece”, înseamnă că mișcarea ta o bate pe a lor.if userChoice == computerChoice:
imprimare(f"Atât tu, cât și computerul ai ales {userChoice}. Este o cravata!")
altfel:
dacă (se mișcă[userChoice]["bate"] == computerChoice):
imprimare(f"{userChoice} bate {computerChoice}. Ai castigat!")
dacă (se mișcă[userChoice]['losesTo'] == computerChoice):
imprimare(f"{userChoice} pierde in fata {computerChoice}. Calculatorul câștigă!”)
Cum să păstrați scorul între jucător și computer între mai multe runde
De asemenea, puteți adăuga runde suplimentare, în care dvs. și computerul faceți câte trei ture.
Odată ce tu și computerul ați ales fie piatră, hârtie, fie foarfece, jocul vă va întreba din nou și vă va ține evidența scorurilor. Scorul pentru jucător crește în funcție de cine a câștigat acea rundă.
- Codul actual reprezintă o singură rundă de ture făcute atât de jucător, cât și de computer. Adăugați tot codul curent, cu excepția instrucțiunii de import, în interiorul unei noi funcții turn(). De asemenea, puteți modifica mesajele de ieșire în consecință, pentru a spune „Câștigi această rundă” în loc de „Tu câștigi”:
defîntoarce():
userChoice = input(„Piatră, hârtie sau foarfece? ").inferior()moveOptions = [„stâncă”, 'hârtie', 'foarfece']
in timp ce (UserChoice nu în moveOptions):
userChoice = input(„Alegere nevalidă. Trebuie să fie piatră, hârtie sau foarfece: ").inferior()imprimare("")
imprimare(f"Tu ai ales {userChoice}.")computerChoice = random.choice (moveOptions)
imprimare(f"Calculatorul a ales {computerChoice}.")miscari = {
„stâncă”: { "bate": 'foarfece', 'losesTo': 'hârtie' },
'foarfece': { "bate": 'hârtie', 'losesTo': „stâncă” },
'hârtie': { "bate": „stâncă”, 'losesTo': 'foarfece' },
}if userChoice == computerChoice:
imprimare(f"Atât tu, cât și computerul ai ales {userChoice}. Este o cravata!")
altfel:
dacă (se mișcă[userChoice]["bate"] == computerChoice):
imprimare(f"{userChoice} bate {computerChoice}. Câștigi această rundă!”)dacă (se mișcă[userChoice]['losesTo'] == computerChoice):
imprimare(f"{userChoice} pierde in fata {computerChoice}. Calculatorul câștigă!”) - Jucătorul și computerul fac fiecare trei ture. Adăugați o variabilă globală numită „turns” în partea de sus a fișierului.
ture = 3
- După funcția turn(), utilizați o buclă Python for pentru a repeta runda de trei ori. La începutul fiecărei runde, tipăriți numărul rundei. Apelați funcția turn() pentru a cere jucătorului și computerului să facă mișcările pentru acea rundă.
pentru i în rază (viri):
imprimare("")
imprimare(f" Rotunda {i+1}: ")
intoarce() - Pentru a urmări cine a câștigat fiecare rundă, adăugați o variabilă de scor pentru fiecare jucător, în partea de sus a fișierului. Veți atribui valori acestor variabile în cadrul funcției turn(), așa că asigurați-vă că le utilizați ca variabile globale.
computerScore = 0
PlayerScore = 0defîntoarce():
global computerScore, playerScore - În cadrul funcției turn(), odată ce jucătorul și computerul au făcut mișcarea, adăugați un punct la scorul câștigătorului. Modificați instrucțiunea if pentru a incrementa valoarea variabilei „playerScore” sau „computerScore”.
dacă (se mișcă[userChoice]["bate"] == computerChoice):
imprimare(f"{userChoice} bate {computerChoice}. Câștigi această rundă!”)
PlayerScore += 1dacă (se mișcă[userChoice]['losesTo'] == computerChoice):
imprimare(f"{userChoice} pierde in fata {computerChoice}. Calculatorul câștigă!”)
computerScore += 1 - La sfârșitul funcției turn(), imprimați o actualizare a scorurilor totale pentru fiecare jucător.
# Imprimați o actualizare a scorurilor totale după rundă
imprimare("")
imprimare(f"TABLA DE CONSIGNE | Scorul jucătorului: {playerScore} | Scorul computerului: {computerScore}") - La sfârșitul jocului și după bucla for care repetă rândurile jucătorului și computerului, tipăriți câștigătorul final.
imprimare("")
dacă (computerScore > playerScore):
imprimare(f"Computerul câștigă cu {computerScore} puncte!")
elif (playerScore > computerScore):
imprimare(f"Câștigi cu {playerScore} puncte!")
altfel:
imprimare(f"Este o cravată! Amândoi câștigați cu {playerScore} puncte!")
Cum să rulezi jocul
Pentru a juca jocul, rulați scriptul Python folosind un terminal sau un prompt de comandă. Introduceți mutarea dvs. și așteptați ca computerul să o facă pe a lor. După ce ați finalizat trei runde, programul va afișa câștigătorul.
- Deschideți un prompt de comandă sau un terminal și navigați la folderul în care stocați fișierul Python.
- Utilizați comanda python pentru a rula scriptul:
pitonRockPaperScissors.py
- Joacă jocul introducând fie „piatră”, „hârtie” sau „foarfecă”.
Învață Python creând jocuri
Crearea de jocuri simple, cum ar fi un joc „Piatră, hârtie, foarfece” este o modalitate excelentă de a vă familiariza mai bine cu conceptele de programare. Există atât de multe alte jocuri distractive pe care le poți face folosind Python, cum ar fi un joc de aventură bazat pe text.