Processing math: 100%

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Папир, камен, маказе

Напиши програм који имплементира играње игре папир-камен-маказе против рачунара. Човек свој предмет бира помоћу тастера P, K или M, док рачунар свој предмет увек бира насумично.

Можеш употребити слике paper.png, rock.png и scissors.png.

../_images/paper.png ../_images/scissors.png ../_images/rock.png
 
1
import random
2
import pygame as pg
3
import pygamebg
4
5
(sirina, visina) = (300, 300)  # otvaramo prozor
6
prozor = pygamebg.open_window(sirina, visina,"Папир, камен, маказе")
7
8
9
PAPIR = 0
10
KAMEN = 1
11
MAKAZE = 2
12
13
slike = [pg.image.load("paper.png"),
14
         pg.image.load("rock.png"),
15
         pg.image.load("scissors.png")]
16
17
covek = 0
18
racunar = 0
19
covek_poeni = 0
20
racunar_poeni = 0
21
22
def pobedio(igracA, igracB):
23
    return ((igracA == PAPIR and igracB == KAMEN) or 
24
            (igracA == KAMEN and igracB == MAKAZE) or 
25
            (igracA == MAKAZE and igracB == PAPIR))
26
27
def crtaj_igraca(igrac, tekst, cx, cy, pobednik):
28
    dim = 150
29
    if pobednik:
30
        pg.draw.rect(prozor, pg.Color("gray"), (cx - dim/2, cy - dim/2, dim, dim))
31
    (x, y) = (cx - slike[igrac].get_width() / 2, cy - slike[igrac].get_height() / 2)
32
    pg.draw.rect(prozor, pg.Color("black"), (x-1, y-1, slike[igrac].get_width() + 1, slike[igrac].get_height() + 1), 2)
33
    prozor.blit(slike[igrac], (x, y))
34
    font = pg.font.SysFont("Arial", 20)
35
    tekst = font.render(tekst, True, pg.Color("black"))
36
    prozor.blit(tekst, (cx - tekst.get_width() / 2, cy - dim / 2 - tekst.get_height() - 10))
37
38
    
39
def crtaj():
40
    prozor.fill(pg.Color("white"))
41
    crtaj_igraca(covek, "Човек: " + str(covek_poeni), sirina / 4, visina / 2, pobedio(covek, racunar))
42
    crtaj_igraca(racunar, "Рачунар: " + str(racunar_poeni), 3 * sirina / 4, visina / 2, pobedio(racunar, covek))
43
    
44
    
45
def obradi_dogadjaj(dogadjaj):
46
    global covek, racunar, covek_poeni, racunar_poeni
47
    if dogadjaj.type == pg.KEYDOWN:
48
        racunar = random.randint(0, 2)
49
        if dogadjaj.key == pg.K_p:
50
            covek = PAPIR
51
        elif dogadjaj.key == pg.K_k:
52
            covek = KAMEN
53
        elif dogadjaj.key == pg.K_m:
54
            covek = MAKAZE
55
        if pobedio(covek, racunar):
56
            covek_poeni += 1
57
        if pobedio(racunar, covek):
58
            racunar_poeni += 1
59
        return True
60
    return False
61
    
62
63
pygamebg.event_loop(crtaj, obradi_dogadjaj)
64

(papir_kamen_makaze)