To delo je na voljo pod pogoji slovenske licence Creative Commons 2.5:
priznanje avtorstva - nekomercialno - deljenje pod enakimi pogoji.
Celotna licenca je na voljo na spletu na naslovu http://creativecommons.org/licenses/by-nc-sa/2.5/si/. V skladu s to licenco je dovoljeno vsakemu uporabniku delo razmnoževati, distribuirati, javno priobčevati, dajati v najem in tudi predelovati, vendar samo v nekomercialne namene in ob pogoju, da navede avtorja oziroma avtorje in izdajatelja tega dela. Če uporabnik delo predela, kar pomeni, da ga spremeni, preoblikuje, prevede ali uporabi to delo v svojem delu, lahko predelavo dela ponudi na voljo le pod pogoji, ki so enaki pogojem iz te licence oziroma pod enako licenco.
![]()
import simplegui
import random
# Naloži slike vseh strani kocke
VEL = [80, 80] # Velikost kocke
SRED = [40, 40] # Središče kocke
kocka = simplegui.load_image("https://i.imgur.com/Rb6QwM3.gif")
# Definicija globalnih spremenljivk
kocka1 = 0 # Prva kocka
kocka2 = 0 # Druga kocka
# Določi rokovalnik gumba 'Vrzi'
def vrzi():
global kocka1, kocka2
# Naključni met obeh kock
# 0 => 1 pika, ..., 5 => 6 pik
kocka1 = random.randint(0, 5)
pike1 = kocka1 + 1
print("Kocka 1: ", pike1)
kocka2 = random.randint(0, 5)
pike2 = kocka2 + 1
print("Kocka 2: ", pike2)
# Določi rokovalnik izpisa/izrisa
def izpis(platno):
global kocka1, kocka2
poz1 = [40, 40] # Zgornji levi kot prve kocke
poz2 = [160, 40] # Zgornji levi kot druge kocke
polozaj1 = (SRED[0] + (VEL[0] * kocka1), SRED[1])
platno.draw_image(kocka, polozaj1, VEL,
[poz1[0]+SRED[0], poz1[1]+SRED[1]], VEL)
polozaj2 = (SRED[0] + (VEL[0] * kocka2), SRED[1])
platno.draw_image(kocka, polozaj2, VEL,
[poz2[0]+SRED[0], poz2[1]+SRED[1]], VEL)
# Ustvari okvir
frame = simplegui.create_frame("Kocke", 280, 160)
frame.set_canvas_background("darkgreen")
# Ustvari gumb in ga poveži z dogodkovnim rokovalnikom
frame.add_button("Vrzi", vrzi, 200)
frame.set_draw_handler(izpis)
# Zaženi animacijo okvirja
vrzi()
frame.start()
# encoding: utf-8
import tkinter as tk
import random
VEL = 80 # Velikost kocke
SRED = 40 # Središče kocke
# Definicija globalnih spremenljivk
kocka1 = 0 # Prva kocka
kocka2 = 0 # Druga kocka
# Določi rokovalnik gumba 'Vrzi'
def vrzi():
global kocka1, kocka2
# Naključni met obeh kock
# 0 => 1 pika, ..., 5 => 6 pik
kocka1 = random.randint(0, 5)
pike1 = kocka1 + 1
print("Kocka 1: ", pike1)
kocka2 = random.randint(0, 5)
pike2 = kocka2 + 1
print("Kocka 2: ", pike2)
izpis()
# Določi rokovalnik izpisa/izrisa
def izpis():
global kocka1, kocka2
# Izbriši vsebino platna
platno.delete("all")
# Nariši izbrano stran kocke
poz1 = [40, 40] # Zgornji levi kot prve kocke
poz2 = [160, 40] # Zgornji levi kot druge kocke
platno.create_image(poz1[0], poz1[1], \
anchor=tk.NW, image=KOCKA[str(kocka1)])
platno.create_image(poz2[0], poz2[1], \
anchor=tk.NW, image=KOCKA[str(kocka2)])
# Ustvari okno, okvir in platno
okno = tk.Tk()
okno.title("Kocke")
okno.geometry("470x200")
okvir = tk.Frame(okno)
okvir.grid(row=0, column=0, pady=20)
platno = tk.Canvas(okno, width=280, height=160)
platno.configure(bg="green")
platno.grid(row=0, column=1, pady=20)
# Naloži slike kocke, ki so v mapi 'kocka'
KOCKA = {
'0': tk.PhotoImage(file="kocka/kocka1.gif"),
'1': tk.PhotoImage(file="kocka/kocka2.gif"),
'2': tk.PhotoImage(file="kocka/kocka3.gif"),
'3': tk.PhotoImage(file="kocka/kocka4.gif"),
'4': tk.PhotoImage(file="kocka/kocka5.gif"),
'5': tk.PhotoImage(file="kocka/kocka6.gif")
}
# Ustvari gumbe in jih poveži z dogodkovnimi rokovalniki
gumb = tk.Button(okvir, text="Vrzi", command=vrzi)
gumb.configure(width=10)
gumb.grid(row=0, column=0, padx=45)
# Zaženi dogodkovno zanko
vrzi()
okno.mainloop()
import simplegui
import random
# Naloži slike vseh strani kocke
VEL = [80, 80] # Velikost kocke
SRED = [40, 40] # Središče kocke
kocka = simplegui.load_image("https://i.imgur.com/Rb6QwM3.gif")
# Definicija globalnih spremenljivk
kocka1 = 0 # Prva kocka
kocka2 = 0 # Druga kocka
izid = ""
REZULTAT = {"SKUPAJ":0, "ZMAGE":0}
# Določi rokovalnik gumba 'Vrzi'
def vrzi():
global kocka1, kocka2, izid
# Naključni met obeh kock
# 0 => 1 pika, ..., 5 => 6 pik
kocka1 = random.randint(0, 5)
pike1 = kocka1 + 1
print("Kocka 1: ", pike1)
kocka2 = random.randint(0, 5)
pike2 = kocka2 + 1
print("Kocka 2: ", pike2)
vsota = pike1 + pike2
if vsota == 7 or vsota == 11:
# Zmaga
izid = "Zmaga! Nova igra?"
REZULTAT["ZMAGE"] += 1
REZULTAT["SKUPAJ"] += 1
elif vsota <= 3 or vsota == 12:
# Poraz
izid = "Poraz! Nova igra?"
REZULTAT["SKUPAJ"] += 1
else:
# Igraj naprej...
izid = "Vrzi ponovno..."
# Določi rokovalnik izpisa/izrisa
def izpis(platno):
global kocka1, kocka2, izid
poz1 = [40, 80] # Zgornji levi kot prve kocke
poz2 = [160, 80] # Zgornji levi kot druge kocke
polozaj1 = (SRED[0] + (VEL[0] * kocka1), SRED[1])
platno.draw_image(kocka, polozaj1, VEL,
[poz1[0]+SRED[0], poz1[1]+SRED[1]], VEL)
polozaj2 = (SRED[0] + (VEL[0] * kocka2), SRED[1])
platno.draw_image(kocka, polozaj2, VEL,
[poz2[0]+SRED[0], poz2[1]+SRED[1]], VEL)
txt1 = izid
txt2 = "zmage: " + str(REZULTAT["ZMAGE"]) \
+ ", skupaj: " + str(REZULTAT["SKUPAJ"])
platno.draw_text(txt1, [40, 40], 20, "white")
platno.draw_text(txt2, [40, 210], 20, "white")
# Ustvari okvir
frame = simplegui.create_frame("Kocke", 280, 240)
frame.set_canvas_background("darkgreen")
# Ustvari gumb in ga poveži z dogodkovnim rokovalnikom
frame.add_button("Vrzi", vrzi, 200)
frame.set_draw_handler(izpis)
# Ustvari napise za opis igre
frame.add_label("") # Prazna vrstica
frame.add_label("Zmaga: vsota pik je 7 ali 11")
frame.add_label("Poraz: vsota pik je 2, 3 ali 12")
# Zaženi animacijo okvirja
vrzi()
frame.start()
# encoding: utf-8
import tkinter as tk
import random
VEL = 80 # Velikost kocke
SRED = 40 # Središče kocke
# Definicija globalnih spremenljivk
kocka1 = 0 # Prva kocka
kocka2 = 0 # Druga kocka
izid = ""
REZULTAT = {"SKUPAJ":0, "ZMAGE":0}
# Določi rokovalnik gumba 'Vrzi'
def vrzi():
global kocka1, kocka2, izid
# Naključni met obeh kock
# 0 => 1 pika, ..., 5 => 6 pik
kocka1 = random.randint(0, 5)
pike1 = kocka1 + 1
print("Kocka 1: ", pike1)
kocka2 = random.randint(0, 5)
pike2 = kocka2 + 1
print("Kocka 2: ", pike2)
vsota = pike1 + pike2
if vsota == 7 or vsota == 11:
# Zmaga
izid = "Zmaga! Nova igra?"
REZULTAT["ZMAGE"] += 1
REZULTAT["SKUPAJ"] += 1
elif vsota <= 3 or vsota == 12:
# Poraz
izid = "Poraz! Nova igra?"
REZULTAT["SKUPAJ"] += 1
else:
# Igraj naprej...
izid = "Vrzi ponovno..."
izpis()
# Določi rokovalnik izpisa/izrisa
def izpis():
global kocka1, kocka2, izid
# Izbriši vsebino platna
platno.delete("all")
# Nariši izbrano stran kocke
poz1 = [40, 80] # Zgornji levi kot prve kocke
poz2 = [160, 80] # Zgornji levi kot druge kocke
platno.create_image(poz1[0], poz1[1], \
anchor=tk.NW, image=KOCKA[str(kocka1)])
platno.create_image(poz2[0], poz2[1], \
anchor=tk.NW, image=KOCKA[str(kocka2)])
txt1 = izid
txt2 = "zmage: " + str(REZULTAT["ZMAGE"]) \
+ ", skupaj: " + str(REZULTAT["SKUPAJ"])
#platno.draw_text(txt1, [40, 40], 20, "white")
#platno.draw_text(txt2, [40, 210], 20, "white")
platno.create_text(40, 40, fill="white", anchor=tk.NW, \
text=txt1, font=("Times", 15))
platno.create_text(40, 210, fill="white", anchor=tk.NW, \
text=txt2, font=("Times", 15))
# Ustvari okno, okvir in platno
okno = tk.Tk()
okno.title("Kocke")
okno.geometry("470x280")
okvir = tk.Frame(okno)
okvir.grid(row=0, column=0, pady=20)
platno = tk.Canvas(okno, width=280, height=240)
platno.configure(bg="green")
platno.grid(row=0, column=1, pady=20)
# Naloži slike kocke, ki so v mapi 'kocka'
KOCKA = {
'0': tk.PhotoImage(file="kocka/kocka1.gif"),
'1': tk.PhotoImage(file="kocka/kocka2.gif"),
'2': tk.PhotoImage(file="kocka/kocka3.gif"),
'3': tk.PhotoImage(file="kocka/kocka4.gif"),
'4': tk.PhotoImage(file="kocka/kocka5.gif"),
'5': tk.PhotoImage(file="kocka/kocka6.gif")
}
# Ustvari gumbe in jih poveži z dogodkovnimi rokovalniki
gumb = tk.Button(okvir, text="Vrzi", command=vrzi)
gumb.configure(width=10)
gumb.grid(row=0, column=0, padx=45)
# Ustvari napise za opis igre
opis1 = tk.Label(okvir, text="") # Prazna vrstica
opis1.grid(row=1, column=0)
opis2 = tk.Label(okvir, text="Zmaga: vsota pik je 7 ali 11")
opis2.grid(row=2, column=0)
opis3 = tk.Label(okvir, text="Poraz: vsota pik je 2, 3 ali 12")
opis3.grid(row=3, column=0)
# Zaženi dogodkovno zanko
vrzi()
okno.mainloop()
2
Napiši program z GUI vmesnikom za met dveh kock. Program naj vsebuje gumb »Vrzi«. Ko uporabnik klikne ta gumb, naj računalnik naključno izbere vrednost dveh kock ter prikaže sliki ustreznih strani kock.
Izgled GUI vmesnika programa naj bo podoben modelu v naslednji nalogi, le da naj ne vsebuje besedil.
3
Razširi prejšnjo nalogo za met dveh kock. Če je vsota pik 7 ali 11, potem je igralec zmagal. Če je vsota pik 2, 3 ali 12, potem je igralec izgubil. V vseh drugih primerih igralec ckocki meče ponovno.
Izgled GUI vmesnika programa naj bo podoben spodnjemu modelu.
