Tegin järgmise väikese
Pythoni skripti, millega Chairgunist saadud suhtelised kliki väärtused teisendada absoluutväärtusteks optika torni peal:
Kood:
def click_converter(from_absolute, from_relative, to_relative, clicks_per_division=8, divisions_per_turn=10):
turn = int(from_absolute[:-2])
major = int(from_absolute[-2:-1])
minor = int(from_absolute[-1:])
clicks_per_turn = divisions_per_turn * clicks_per_division
current_value = turn * clicks_per_turn + major * clicks_per_division + minor
zero = current_value - from_relative
new_value = zero + to_relative
return str(new_value / clicks_per_turn) + str((new_value % clicks_per_turn) / clicks_per_division) + str((new_value % clicks_per_turn) % clicks_per_division)
Parameetrite seletus:
- from_absolute - torni hetke asukohta absoluutväärtus. Esimene number on nähtav tiiru-/kõrgusmarker. Nulltiirust allpool asuvad ringid tuleks tähistada negatiivselt. Teine number näitab tiiru täisjaotist ning viimane number sellele jaotisele järgnevaid klikke. Tuleb sisestada stringi kujul ehk jutumärkide vahel. Torni nullseade korral tuleks sisestada "000" - 0. tiir, 0. jaotis, 0. klikk
- from_relative - vastava asukohta suhteline väärtus Chairguni klikitabelis
- to_relative - soovitud asukohta suhteline väärtus Chairguni klikitabelis
- clicks_per_division - klikke jaotise kohta (vaikimisi 8)
- divisions_per_turn - jaotisi tiiru kohta (vaikimisi 10 - Sightronil, NS Diamondil peaks olema 8)
Skripti kasutamiseks tuleks kõigepealt Chairgunist saada oma püssi seadistustele vastav klikitabel ning suvalisel kaugusel paika keerata "null" seade nii et tabamispunkt oleks optika risti tsentris. Kui vastav null käes, tuleb optika kõrgustornilt lugeda absoluutne torni seade ja Chairguni klikitabelist leida vastava kauguse suhteline klikkide arv.
Näide Sightroni baasil:
Kaugus on 29m suhteline klikkide arv tabelis näitab -30 ja torni absoluutne asukoht -181. Antud absluutne asukoht näitab, et nähtaval on esimene ring nullist allpool, ja ette on keeratud 8 jaotist pluss 1 klikk. Kaugus torni null jaotisest on sisuliselt 15 klikki.
Ütleme, et tahame lasta 10m peal märki. Klikitabelist loeme 10 meetri jaoks suhteliseks klikiväärtuseks 70.
Anname vastava sisendi funktsioonile:
Kood:
>>> click_converter("-181", -30, 70)
'105'
Kaks viimast parameetrit jätsin ette andmata, sest vaikimisi on need minu Sightronile sobivad.
Saame torni absoluutväärtuseks '105', st et turni tuleb tõsta kuni nähtavale ilmub 1. ring nullringist üleval ning lisaks veel 5 klikki.
Kui viitsida sisse toksida kogu Chairguni klikitabel järgmisel kujul (kaugus: suhteline kliki väärtus)
Minu näitel:
Kood:
>>> click_table = {8: 123, 9: 93, 10: 70, 11: 52, 12: 37, 13: 24, 14: 14, 15: 6, 16: -1, 17: -7, 18: -12, 19: -16, 20: -20, 21: -23, 22: -25, 23: -27, 24: -28, 25: -30, 26: -30, 27: -31, 28: -31, 29: -31, 30: -31, 31: -31, 32: -30, 33: -29, 34: -29, 35: -28, 36: -26, 37: -25, 38: -24, 39: -22, 40: -21, 41: -19, 42: -17, 43: -15, 44: -13, 45: -11, 46: -9, 47: -7, 48: -5, 49: -2, 50: 0}
Siis käivitades järgmised kaks rida koodi:
Kood:
>>> for distance, relative_clicks in sorted(click_table.items()):
print "{0:>2d}: {1:>4s}".format(distance, sightron_click_translator("-182", -29, relative_clicks))
8: 172
9: 134
10: 105
11: 083
12: 064
13: 047
14: 035
15: 025
16: 016
17: 010
18: 003
19: -197
20: -193
21: -190
22: -186
23: -184
24: -183
25: -181
26: -181
27: -180
28: -180
29: -180
30: -180
31: -180
32: -181
33: -182
34: -182
35: -183
36: -185
37: -186
38: -187
39: -191
40: -192
41: -194
42: -196
43: 000
44: 002
45: 004
46: 006
47: 010
48: 012
49: 015
50: 017
Prinditakse välja kõigile kaugustele vastavad torni absoluutväärtused. Juhul kui Chairguni olid sisestatud õiged andmed, siis peaks ka antud tabel olema korrektne.
Skriptist võiks kasu olla siis kui ei kasutata custom torni korke.