Guest User

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)
  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
RAW Paste Data