• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Neuer Solver

OP
S

salzkammergut

Geomaster
Beispiele für Funktionen:

Code:
   Funktionsaufruf            Ergebnis
   ===============            ========
   q(1234)                    10
   cr(1234)                   10
   length("ABCDE")            5
   len(1234)                  4
   mid("ABCDE",2)             BCDE
   mid("ABCDE",2,3)           BCD
   mid("ABCDE",4,2)           DE
   instr("ABCDE","BC")        2
   instr(1,"ABCAB","AB")      1  (Beginne die Suche beim ersten Zeichen) 
   instr(3,"ABCAB","AB")      4  (Beginne die Suche bei Zeichen 3)
   ucase("cachewolf")         CACHEWOLF
   toupper("cw")              CW
   lcase("CacheWolf")         cachewolf
   lc("CacheWolf")            cachewolf
   replace("ABCAB","AB",".")  .C.
   reverse("ABCDE")           EDCBA
   count("ABCDEABB","A")      2
   count("ABCDEABB","AB")     A=2 B=3
   rot13("Cachewolf")         Pnpurjbys
   val("ABCZ")                32
   sval("ABCZ")               01 02 03 26
   encode("ABCDE","ACE","ace") aBcDe   (Zweiter und dritter String müssen gleich lang sein)
   e(s,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","NOPQRSTUVWXYZABCDEFGHIJKLM")  
                                                entspricht rot13(s) 
   c="N 47 48.991 E012 50.789"
   format(c,"CW")             N 47° 48.991 E 012° 50.789
   format(c,"UtM")            33T E 338792 N 5298153
   format(c,"dms")            N 47° 48' 59.5" E 012° 50' 47.3"
   format(c,"DD")             N 47.81652° E 012.84648°
   project(c,45,250)          N 47° 49.081 E 012° 50.923
   goto(c)                    Trägt Koordinate ins Goto-Panel als Ziel ein
   goto(c,"00XXXX")           Wie oben aber kopiert zusätzlich Koordinate in WP 00XXXX
 

Kalli

Geowizard
Hi salzkammergut,

packst Du die Doku auch in die wolflang.html? Dann hat man sie auch unterwegs dabei, wenn bilbowolf beim build auf den richtigen Knopf drückt :D
 
OP
S

salzkammergut

Geomaster
@Kalli: Kurzdoku schon erledigt. Ich hoffe das reicht.

@Albsucher: Kannst Du das Wiki aktualisieren? Bitte melde Dich wenn etwas unklar ist (bin allerdings die nächste Woche vermutlich nicht erreichbar).
 

Kalli

Geowizard
Mal eine Frage, ich habe echt keine Ahnung wie aufwendig das ist: Macht es Sinn, im Solver so etwas wie Codehighlighting zu machen, also genau das, was die Editoren mit Programmiersprachen machen? Kommt wahrscheinlich auch drauf an, was man alles zeigen will: Schlüsselworte, Funktionen, Text ....
 
OP
S

salzkammergut

Geomaster
Hallo Kalli,

ich glaube daß Code-Highlighting dann doch einen Schritt zu weit geht. Für mich ist der Solver ein Tool zur leichteren Lösung von Multicaches - nicht mehr und nicht weniger. Natürlich könnten wir einen Ausbau in Richtung vollständige Programmierumgebung vornehmen (mit Prozeduren, Schleifen usw.). Nur: ist das wirklich notwendig?

So habe ich habe mir schon beim Einbau des IF Statements überlegt, ob eine Schachtelung von IFs wirklich notwendig ist (immer davon ausgehend, daß eine Fehlersuche auch am PDA im Feld möglich sein sollte). Die Entscheidung fiel dann für ein einfaches IF ohne ELSE um die Sache einfach aber funktional zu halten (Ich hätte auch leicht ein beliebig geschachteltets IF - THEN - ELSE implementieren können).

Der Durchschnittsuser wird auch in Zukunft wohl nur einen Teil der vielen Funktionen vom Solver nutzen und sollte nicht unnötig verwirrt werden.

Schlußendlich ist zu bedenken, daß die Ladezeit von CW schon jetzt relativ lang ist. Ich will meine (limitierte) Energie lieber in ein schnelleres Ladeverhalten bzw. ein schnelleres HTMLDisplay stecken - das bringt mir persönlich mehr.

In der neuen Form ist der Solver meines Erachtens ziemlich einzigartig - ich zumindestens kenne keine PDA Software zum Geocachen, die eine ähnliche Funktionalität bietet. So soll es auch weiterhin bleiben ! (Für kleine Verbesserungen habe ich natürlich immer ein offenes Ohr).
 

greiol

Geoguru
also. hmm. was soll ich sagen?

das sieht einfach irre aus und ergibt ganz neue möglichkeiten.

klasse.

ich hab jetzt nur ein problem.

warte ich auf das nächste stable release oder steige ich um auf die be.

es sieht jedenfalls klasse aus.

könnte q() noch eine option für "letzte aller quersummen" bekommen?
also
Code:
q(99) = 18
q(99,l) = 9
?
 

Kalli

Geowizard
Hi,

ist schon Ok, war nur so ein schneller Gedanke. Der Solver sieht echt gut aus (vom kurzen Reinschauen in die Source).
 
OP
S

salzkammergut

Geomaster
Gute idee. Schon im Repository.

q(zahl, zyklen)

D.h. q(983478,1) entspricht q(983478)
q(983478,2) enspricht q(q(983478))
q(983478,3) entspricht q(q(q(983478)))

Grüße
salzkammergut
 
OP
S

salzkammergut

Geomaster
So, jetzt gibt's den Solver auch mit deutschen Fehlermeldungen.

... dann warte ich jetzt auf die hoffentlich spärlichen Bugs (bzw. auf weitere Verbesserungswünsche - aber erst nächstes Wochenende)
 
A

Anonymous

Guest
man o mann, da kommt man ja gar nicht mehr so schnell hinterher mit posten...

Also ich werd das ganze mal (baldmöglichst) in die Doku packen und auch in die wolflang.html für unterwegs.

Gebt mir einen/zwei tage zeit...
 
A

Anonymous

Guest
okay, dann lass ich die mal weg und nehm nur die Doku
(solange BerliOS mal Bock hat...)
 

pfeffer

Geowizard
darf ich mir noch eine Funktion wünschen?

ich würde eine Funktion "goto" gut finden, die die Ausführung abbricht und das Gotopanel öffnet. Schließlich ist es ja häufig so, dass man die notwendigen Infos für die übernächste erst bekommt, wenn man die nächste Station erledigt hat. Wenn man die Station erledigt hat, kann man das entsprechende Goto einfach auskommentieren oder ein "setgoto" (siehe unten) draus machen.

daneben könnte "setgoto" oder kurz "sgoto" oder nur "sg" die gotoposition nur setzen, ohne die ausführung zu stoppen und ohne ins Gotopanel zu wechseln.

Vielleicht braucht man auch kein setgoto, gotos, die man nicht mehr braucht, kann man ja einfach auskommentieren.

Gruß,
Pfeffer.
 

MKW

Geocacher
Hallo pfeffer!
Meine Idee für den goto-Befehl, so wie er jetzt implementiert ist, ist folgende Vorgehensweise:
Die Cache-Beschreibung wird (zu Hause) auf die einzelnen Waypoints aufgeteilt, sofern dies der Owner nicht schon durch entsprechende Notes bei den einzelnen Additional Waypoints getan hat.
Entsprechend erhält jeder WP sein Solver-File, das dann immer mit einem goto-Befehl endet.
Sofern Ergebnisse eines WP bei einem anderen gebraucht werden, kann man die globalen Variablen nutzen.
So braucht man unterwegs nichts mehr im Code zu ändern, nur noch die Werte in die schon vorbereiteten Zuweisungen (a=; ) eintragen.

Was willst Du mit deinem goto-Befehl erreichen?
 

pfeffer

Geowizard
eben, d.h. Du willst immer auf das Goto-Panel wechseln, nachdem der Goto-Befehl angetroffen wurde. Ich will, dass das der Goto-Befehl automatisch macht. Ist aber auch nicht so wichtig.

(hatte vorgeschlagen zusätzlich einen setgoto-Befehl einzuführen, der nur die Gotoposition setzt, aber im gegensatz zum goto-befehl nicht ins Gotopanel wechselt, weil Salzkammergut extra Code eingebau hatte, damit er nicht ins GotoPanel wechselt, dachte ich er wollte so einen Befehl haben, obwohl mir nicht klar ist, wofür)

Gruß,
Pfeffer.
 
OP
S

salzkammergut

Geomaster
Ich werde in den nächsten Tagen noch einige Befehle nachrüsten. So schwebt mir z.B. vor, daß alle Wegpunkte als globale Variable behandelt werden (was sie de facto auch sind).

Mann kann dann mit $GCXXYY die Koordinaten des Wegpunktes auslesen bzw. auch setzen. Mit
Code:
IF $GCXXYY="" THEN
kann man abfragen, ob der Wegpunkt bereits gesetzt ist und dementsprechend Berechnungen durchführen wenn er z.B. noch nicht gesetzt ist.

So kann man dann schreiben:
Code:
IF $GCXXYY="" THEN
$GCXXYY=... irgend eine Berechnung...
goto($GCXXYY)
stop
ENDIF

Beim ersten Druck auf "Solve" wird der Wegpunkt berechnet, gespeichert und im goto-Panel angezeigt. Beim nächsten mal passiert nichts. Dieses Code-Segment kann dann für jede Stage wiederholt werden.

Jeder kann dann entscheiden ob er MKWs Variante nutzt (ein File je Wegpunkt) oder alles in eine Datei packt.

Weiters wird es möglich sein das derzeitige Zentrum abzufragen bzw. zu setzen und auch das Profilzentrum zu lesen/setzen. Der Befehl '$' wird alle globalen Variablen mit Inhalt auflisten (nicht die Wegpunkte).

Schlußendlich will ich noch einen "Direktmodus" einführen, wo sich nach Doppelklick auf das Codepanel eine Inputbox öffnet, deren Text dann sofort ausgeführt wird. Damit kann man dann Variablen schnell überprüfen ohne den gesamten Code ausführen zu müssen.
 

Kappler

Geowizard
Mal noch eine Frage zum Solver:
Wäre es nicht sinnvoll, wenn man den Solver-Text direkt mit dem Waypoint abspeichert?
Dann wäre es einfacher, zu Hause alles vorzubereiten: man hätte die Berechnungsformel bereits beim Waypoint stehen und müsste sie nicht erst mit cut-and-paste aus dem Notizfeld holen oder aus einer Datei laden...
 
Oben