﻿

Untitled

a guest
Apr 5th, 2013
53
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. # uzduotis http://galvosukykla.lt/failai/mokymas/programavimas/2013-pavasaris/ktug/KD2-pasiruosimas-sokiai.pdf
2. from turtle import *
3. reset()
4.
5. X=[100, 400, 200, 300, 250, 100]
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)
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
RAW Paste Data