Wiesz już jak używać języka JavaScript (GCA2J8X) i jak tworzyć zmienne (GCA2J9B). Przyszła pora na niezwykle praktyczne wykorzystanie zmiennych przy podstawianiu ich do wzoru skrytek - czyli na interpolację stringów (string wśród programistów to po prostu ciąg znaków, napis).
Wzory zagadek lub mulatków często są podawane nie jako jedno działanie, ale jako zestaw kilku działań, z których wychodzą kolejne składowe współrzędnych. Przykładowo w skrytce GC9HNRW wzór na współrzędne północne to N 50° 0(D-H-1).HG(A+C)'. W tym wzorze HG(A+C) owner traktuje jako kolejne cyfry współrzędnych, a nie jako H*G*(A+C), dlatego zawsze musisz upewnić się, że dobrze interpretujesz podany wzór. Możesz nastepnie wszystkie te składowe liczyć "na piechotę", tak jak pokazałem to w keszu #2, ale można też przekształcić ten wzór na tzw. template string, i następnie wykorzystać JS do tego, by współrzędne finału gotowe do wklejenia do checkera zbudował dla nas. Bez pomyłek! Jak to zrobić?
- Kopiujesz wzór do schowka (Ctrl+C), i wklejasz go gdzieś, gdzie masz możliwość jego edycji (notatnik, notatka GC lub nawet od razu - konsola JS).
- Na początku i na końcu dodajesz znak ` (backtick, na klawiaturze jest najczęściej nad tabulatorem i na lewo od jedynki).
- Każde pojedyncze działanie ze wzoru, z którego ma powstać składowa współrzędnej, opakowujesz w ${ z lewej i } z prawej jego strony (dolar i klamerka wąsiasta otwierająca z lewej i klamerka wąsiasta zamykająca z prawej).
- Dostosowujesz operatory działań arytmetycznych tak by były rozumiane przez kod (jeśli wzór jest podany w innej postaci).
- Wykonujesz kod i dostajesz kordy finału.
Przykład lepszy niż wykład. Template string dla powyższego wzoru będzie wyglądać tak:
`N 50° 0${D-H-1}.${H}${G}${A+C}'`
Tak przygotowane i wykonane wyrażenie w konsoli JS da Ci od razu poprawne współrzędne, oczywiście przy założeniu, że wartości Twoich zmiennych są poprawnie policzone.
Aby znaleźć finał, musisz jedynie obliczyć wspołrzędną wschodnią.
E H(G*D+A*H)° D4.((A*A*D/H+A+2/(A-D-H-H))/(A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+D-H-1))(G+5)((568234+A*85/D*H*7-85247+74258)/(98566*D-A*108-D*55555*H-G-74504))'
Czyli w języku JavaScript:
E ${H}${G*D+A*H}° ${D}4.${(A*A*D/H+A+2/(A-D-H-H))/(A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+A+G+H+D-H-1)}${G+5}${(568234+A*85/D*H*7-85247+74258)/(98566*D-A*108-D*55555*H-G-74504)}'
Changelog
1.11.2023: Zmiana współrzędnych, zagadki i podpowiedzi. Jeśli masz finał obliczony wcześniej - nowe miejsce znajdziesz wyznaczając azymut od starych współrzędnych: 27m na 312 stopni.