SHOW:
|
|
- or go back to the newest paste.
1 | # uzduotis http://galvosukykla.lt/failai/mokymas/programavimas/2013-pavasaris/ktug/KD2-pasiruosimas-sokiai.pdf | |
2 | from turtle import * | |
3 | reset() | |
4 | ||
5 | - | u=1000 |
5 | + | |
6 | Y=[0, 100, 200, 100, 150, 200 ] | |
7 | L=['v', 'm', 'v', 'v', 'm', 'm'] | |
8 | Vardai=['Tomas', 'Agne', 'Petras', 'Vytas', 'Egle', 'Ona'] | |
9 | Merginos=[] | |
10 | Vaikinai=[] | |
11 | ||
12 | class Dancer(Turtle): | |
13 | def dance(self, x, y): | |
14 | sx, sy = self.pos() # startine pozicija, pries pajudant | |
15 | self.goto(x, y) # vaikino judesys | |
16 | ||
17 | dx=x-sx; dy=y-sy # kiek pajudejo vaikins | |
18 | ||
19 | msx, msy = self.issirinkta.pos() # merginos start. vieta | |
20 | self.issirinkta.goto(msx+dx, msy+dy) # merginos judesys | |
21 | ||
22 | ||
23 | n=len (X); | |
24 | for i in range (n): | |
25 | ##d = Turtle(); # sukuria piestuka | |
26 | d = Dancer() # sukuria sokti poroje galinti piestuka | |
27 | d.up() | |
28 | d.goto(X[i], Y[i]) # sokejas nueina i vieta | |
29 | d.name=Vardai[i] | |
30 | d.write(d.name) | |
31 | d.lytis=L[i] | |
32 | d.poroje=False | |
33 | if L[i]=='v': | |
34 | d.ondrag(d.dance) # susiejam tempima pele su poros judejimu | |
35 | d.shape('square') | |
36 | Vaikinai.append(d) | |
37 | if L[i]=='m': | |
38 | d.shape('circle') | |
39 | Merginos.append(d) | |
40 | d.shapesize(0.5) | |
41 | ||
42 | ||
43 | for v in Vaikinai: | |
44 | v.color('blue') | |
45 | for m in Merginos: | |
46 | m.color('yellow') | |
47 | ||
48 | ||
49 | def renkasi_vaikinai(M, V): | |
50 | for v in V: | |
51 | print(v.name) | |
52 | u=1000 # maziausio atstumo kintamasis (pradine reiksme, kad galetu mazeti) | |
53 | for m in M: | |
54 | print(m.name, m.pos(), v.distance(m), m.poroje ) # spausd merginos varda, vieta, atstuma iki jos, ir ar poroje | |
55 | # jeigu mergina dar laisva ir pakankamai arti | |
56 | if m.poroje==False and v.distance(m) < u: | |
57 | u = v.distance(m) # isidemim atstuma iki jos | |
58 | v.issirinkta = m # isidemim mergina | |
59 | print("issirinko", v.issirinkta.name) # spausdinam vaikino issirinktosios varda | |
60 | v.issirinkta.poroje=True # pazymim, kad mergina jau nelaisva | |
61 | ||
62 | color("blue") # nubreziam linija | |
63 | up(); goto(v.pos()) # nuo vaikino | |
64 | down(); goto(v.issirinkta.pos()) #iki merginos | |
65 | ||
66 | renkasi_vaikinai(Merginos, Vaikinai) #iskvieciam "poravimosi" funkcija | |
67 | ||
68 | mainloop() # kad leistu peles veiksmus |