Jump to content
SecurityRecord

[PYTHON] Rock, Paper, Scissors

Recommended Posts

Posted (edited)

Salut?ri, ast?zi va voi arat? un exemplu de coding simplu în Python prin creearea unui joc de tip Rock, Paper, Scissors.

Un joc de tip Rock, Paper, Scissors este jocul perfect pentru a experimenta limbajul de programare numit Python. Input uman, compara?ii, selec?ii random ?i o mul?ime de loopuri sunt folosite pentru a cre? o versiune func?ional? a jocului. De asemenea este destul de u?or de adaptat ?i dezvoltat în continuare, ad?ugând reguli ?i rezultate, sau chiar cre? un AI rudimentar.

Pentru acest tutorial, de asemenea va recomand s? folosi?i IDLE. IDLE este un IDE pentru Python pur ?i simplu extraordinar, care poate fi instalat cu u?or în majroitatea distribu?iilor de Linux ?i este deja g?sit pe Raspbian pentru pl?cile Raspberry Pi. Are func?ii de highlight pentru orice probleme ap?rute în cadrul codului ?i va las? s? rula?i u?or orice script pentru a va asigura c? func?ioneaz? în termeni normali.

Output

Vom începe cu un exemplu de output al acestui script, pe care îl voi separ? în mai multe p?r?i pentru a încerca s? va explic ce înseamn? fiecare buc??ica a lui.

victor@ubuntu:~Desktop/PythonTutorial$ ./rocketpaperscissors.py
Let's play a game of Rock, Paper, Scissors.

Aici putem vedea c? avem permisiunea de a rul? acest script într-un terminal, deci chiar ?i în afar? unui IDE.

Rock = 1
Paper = 2
Scissors = 3
Make a move: 1
1...
2...
3!
Computer threw Paper!
The computer laughs as you realise you have been defeated.
Would you like to play again? y/n: y

Inputul uman în formele integer este folosit pentru compararea mi?c?rilor ?i, desigur, func?ionarea jocului.

Rock = 1
Paper = 2
Scissors = 3
Make a move: 2
1...
2...
3!
Computer threw Paper!
Tie game.
Would you like to play again? y/n: n

Este folosit un loop pentru a relua codul ?i a începe un nou joc.

Thank you very much for playing our game. See you next time!
HIGH SCORES
Player: 0
Computer: 1
victor@ubuntu:~Desktop/PythonTutorial$

Avem de asemenea ?i o variabil? pentru a ?ine minte scorurile din joc!

Output final

victor@ubuntu:~Desktop/PythonTutorial$ ./rocketpaperscissors.py
Let's play a game of Rock, Paper, Scissors.

Rock = 1
Paper = 2
Scissors = 3
Make a move: 1
1...
2...
3!
Computer threw Paper!
The computer laughs as you realise you have been defeated.
Would you like to play again? y/n: y

Rock = 1
Paper = 2
Scissors = 3
Make a move: 2
1...
2...
3!
Computer threw Paper!
Tie game.
Would you like to play again? y/n: n
Thank you very much for playing our game. See you next time!
HIGH SCORES
Player: 0
Computer: 1
victor@ubuntu:~Desktop/PythonTutorial$

Codul

#!/usr/bin/env python2

# Presenting: Rock, Paper, Scissors: The Video Game

import random
import time
# Aceasta sectiune importa functiile extra din Python de care
# avem nevoie - totusi sunt doar niste parti standard din
# librariile Python, nu fac parte din enviromentul default

rock = 1
paper = 2
scissors = 3

names = { rock: "Rock", paper: "Paper", scissors: "Scissors" }
rules = { rock: scissors, paper: rock, scissors: paper }


player_score = 0
computer_score = 0
# Acestea sunt regulile initiale ale jocului, noi definim
# trei variabile pe care le legam intr-o "relatie" si
# o alta prin care tinem scorul

def start():
print "Let's play a game of Rock, Paper, Scissors."
while game():
pass
scores()
# Incepem jocul prin a defini cum incepe fiecare runda. La
# sfarsitul fiecarei runda, sesiunea se va intoarce aici,
# unde putem alege daca sa incepem un alt joc sau nu

def game():
player = move()
computer = random.randint(1, 3)
result(player, computer)
return play_again()
# Aici este majoritatea jocului, cerand jucatorului sa
# introduca un input, asteptand si inputul computerului si
# trimitand aceste date mai departe pentru a primi
# rezultatele, apoi intreband daca mai vrei sa joci sau nu.

def move():
while True:
print
player = raw_input("Rock = 1\nPaper = 2\nScissors = 3\nMake a move: ")
try:
player = int(player)
if player in (1,2,3):
return player
except ValueError:
pass
print "Oops! I didn't understand that. Please enter 1, 2 or 3."
# Aici se termina cu partea inputului de la jucator, in
# schimb aici oferim informatiile jucatorului despre joc si
# asteptam sa vedem ce vor sa faca mai departe, de asemenea
# ii atentionam daca au introdus un numar invalid.

def result(player, computer):
print "1..."
time.sleep(1)
print "2..."
time.sleep(1)
print "3!"
time.sleep(0.5)
print "Computer threw (0)!".format(names[computer])
global player_score, computer_score
if player == computer:
print "Tie game."
else:
if rules[player] == computer:
print "Your victory has been assured."
player_score += 1
else:
print "The computer laughs as you realise you have been defeated."
computer_score += 1
# Aici se intampla cateva lucruri atunci cand afisam
# rezultatele. Prima data, adaugam un delay pentru a
# exista putina tensiune, apoi comparam ce a introdus
# playerul cu inputul computerului si printr-un
# statement alegem ce va fi afisat si cum vor fi updatate
# scorurile.

def play_again():
answer = raw_input("Would you like to play again? y/n: ")
if answer in ("y", "Y", "yes", "Yes", "Of course!"):
return answer
else:
print "Thank you very much for playing our game. See you next time!"
# In final, asteptam un input de tip text din partea
# jucatorului in caz ca doreste sa joace din nou sau nu,
# in caz contrar ii aratm un mesaj de la revedere si
# rezultatele jocului.

get scores():
global player_score, computer_score
print "HIGH SCORES"
print "Player: ", player_score
print "Computer: ", computer_score

if __name__ == '__main__':
start()

Concluzii

In final, va spun ca imi cer mii de scuze daca exista greseli in cod si v-as ruga sa mi le raportati daca le gasiti, codul l-am facut acum pe graba, dupa o zi plina si nu sunt sigur pe el. De asemenea, imi cer iar scuze pentru ca nu am mai comentat aici fiecare sectiune in parte, insa chiar ma simt foarte obosit, sper ca sunt de ajuns comentariile facute in cod. Nu am avut timp sa rulez codul, deci doar am facut un output dupa cum ma astept eu sa functioneze. Astept sugestiile voastre si parerile.

Resurse

Python 2: Download Python

IDLE: 24.6. IDLE — Python v2.7.5 documentation

SourceForge code: https://sourceforge.net/projects/srecordresource/files/?source=navbar

Toate cele bune!

Edited by SecurityRecord

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...