SHOW:
|
|
- or go back to the newest paste.
| 1 | from turtle import * | |
| 2 | reset() ## Kelionė po dykumą :) | |
| 3 | ||
| 4 | # nr: 0 1 2 3 4 5 | |
| 5 | X = [ 20, 50, 100, 80, 0, -30] | |
| 6 | Y = [-100, 100, 0, 50, 40, 50 ] | |
| 7 | K = [ 20, 40, 30 , 100, 20, 40 ] # kuras | |
| 8 | ||
| 9 | kuras = 250 | |
| 10 | ||
| 11 | n = len(X) | |
| 12 | ||
| 13 | up() | |
| 14 | for i in range(n): | |
| 15 | goto(X[i], Y[i]) | |
| 16 | dot(10) | |
| 17 | write(i) | |
| 18 | ||
| 19 | goto(X[0], Y[0]); down() # startas | |
| 20 | ||
| 21 | i = 0 | |
| 22 | while i < n-1: | |
| 23 | kuras = kuras + K[i] | |
| 24 | write( [i, kuras] ) | |
| 25 | ||
| 26 | for j in range(i+1, n): | |
| 27 | dx = X[i]-X[j] | |
| 28 | dy = Y[i]-Y[j] | |
| 29 | atstumas = round( (dx**2+dy**2)**0.5 ) | |
| 30 | if atstumas < kuras: | |
| 31 | break | |
| 32 | ||
| 33 | if atstumas < kuras: | |
| 34 | goto(X[j], Y[j]) | |
| 35 | i = j | |
| 36 | kuras = kuras - atstumas | |
| 37 | else: | |
| 38 | color('red'); dot(5); left(90); fd(20); write('BASTA')
| |
| 39 | break | |
| 40 | ||
| 41 | - | mainloop() |
| 41 | + | mainloop() |
| 42 | ||
| 43 | # Užduotys pasipraktikavimui: | |
| 44 | # 0) jei sėkmingai pasiekė paskutinį tašką, parašyti "Valio" | |
| 45 | ||
| 46 | # 1) ištrinti pradinį taškų išsidėstymo piešimą ir per naują pačiam parašyt ;) | |
| 47 | ||
| 48 | # 2) surasti maršruto ilgį | |
| 49 | ||
| 50 | # 3) ieskant naujo atstumo, tikrinti anksciau praleistus | |
| 51 | # tam gali buti sarasas, kuriame pazymim, ar jau buvom | |
| 52 | # B = [0, 0, 0, 0, 0, 0] # 0 - ne, 1 - buvom | |
| 53 | ||
| 54 | # 4) surast trumpiausią maršruto atkarpą (ir tarp kurių taškų jis buvo) |