Unsere Geocaching-Tools

Gestern habe ich mich erstmals an eigene Tools für das Geocachen gesetzt. Das Ergebnis kann sich meiner Meinung nach inzwischen auch sehen lassen.
Zum aktuellen Zeitpunkt gibt es genau zwei Tools:

  • BWW
  • Rot13

Doch ich möchte nicht all zu viel über die Tools in der Nutzung schreiben, sondern auf die Programmierung eingehen. Die Lösung für dieses Skript lässt sich eventuell auf andere Problemstellungen übertragen, weshalb ich es unbedingt erwähnen möchte.


Kommen wir direkt zur Programmierung.

Vorab: Ich liefere kein fertiges Skript, sondern lediglich einen Lösungsansatz. Die eigentliche Programmierung obliegt dir selbst. Ich bin allerdings bereit dazu, individuelle Hilfestellung zu geben, sofern von dir gewünscht. Hierfür kannst du mir gerne eine E-Mail schreiben oder in den Kommentaren deine Frage oder dein Problem formulieren.

Wie geht man nun an ein solches Problem ran? Nehmen wir uns das Beispiel des Buchstabenwortwerts (BWW) vor.
Dein Skript muss in der Lage sein, eine Art Verzeichnis über alle Buchstaben und deren zugehörigen Werte auszulesen.
Doch welche Art von Verzeichnis kann man hier nutzen?

Möglichkeit 1: Ein Textdokument

Ein Textdokument, in welchem alle Buchstaben und deren Werte gespeichert sind, wäre möglich. Jedoch müsste man ständig auf die Datei zugreifen, was ein hoher Aufwand beim Programmieren wäre und nur zu einem sehr langen Skript führen würde.

Möglichkeit 2: Eine Datenbank

Zugegeben, die Möglichkeit mit der Datenbank ist sinnvoll, wenn man sehr viele „Definitionen“ festlegen muss und diese auch häufig vor hat zu ändern. Allerdings wäre das in unserem Fall nicht so, weshalb unsere Datenbank aus einer minimalen Anzahl von Datensätze bestehen würde und nur einen Bruchteil der Speicherkapazität nutzen würde, die man bei einem Hoster zur Verfügung hat.

Doch was sonst?

Wie viele andere Programmiersprachen unterstützt PHP Arrays.
Einfach gesagt ist ein Array eine Variable, welche viele Werte beinhalten kann – ähnlich einer Liste (bitte nicht verwechseln mit Listen als Begriff in der Programmierung!).

Daher nutzen wir:

Möglichkeit 3: Arrays

In einem Array speichern wir alle Werte, welche unser Skript unterstützen soll und weisen diesen Werten wiederum andere Werte zu.

Das könnte dann wie folgt aussehen:

$abc = array("A" => 1, "B" => 2, "C" => 3);

Wie man erkennen kann, ist die Definition eines Arrays sehr einfach. In unserem Beispiel achten wir lediglich darauf, dass wir einem String einen Integer-Wert zuweisen. Damit erleichtern wir uns später das Rechnen, da man mit einem String bekanntlich nicht rechnen kann.

Natürlich ist der Code des Arrays oben nicht vollständig, denn du musst alle Zeichen festlegen, welche später vom Benutzer genutzt werden sollen. Alles was dort nicht drinsteht, wird nicht unterstützt. Das Array bildet sozusagen eine Art Lexikon für unser Skript, wo dieses automatisch die Zeichen nachschlägt.

Kommen wir zum Programmkern:

Im Programmkern läuft die eigentliche „Berechnung“ ab. Die Berechnung kommt in eine Funktion, welche mithilfe von Parametern gerufen wird. Übergeben werden müssen das Array und die Eingabe des Benutzers.

Aussehen könnte der Rumpf der Funktion dann so:

function berechnen($eingabe, $lexikon) {
         hier der Kern
}

An dieser Stelle seid nun ihr gefragt. Wer sich öfter schon mit PHP beschäftigt hat, wird dieses Problem in Minuten lösen können.

Du solltest dann zu deinem Skript eine HTML-Seite schreiben, wo die Ausgabe der Berechnung und die Eingabe des Wortes stattfinden.


Alles in Allem möchte ich euch hiermit einen Anstoß liefern, wie man ein solches Skript innerhalb von kurzer Zeit selbst schreiben kann. Die Schwierigkeit besteht hier lediglich darin zu wissen, wie man es anstellt, dass das Skript alle Buchstaben durchläuft und die Werte aufsummiert.

Die Ausgabe kann erfolgen per Rückgabe einer Variable oder direkt im PHP-Skript. In letzterem Falle wäre eine schöne Trennung von Skript und HTML allerdings nicht möglich.

Zudem ist es auch möglich, dieses Skript auf einer einzigen PHP-Seite zusammen mit dem HTML-Text unterzubringen! Da müsst ihr allerdings etwas erfinderisch sein, da vom Formular keine Daten an eine andere Datei übergeben werden können.
Als Anregung und Stichwort sage ich hier nur: GET.

Zu Beginn des Skripts müsstet ihr im Falle von GET eine zusätzliche Abfrage einbauen. Mehr verrate ich nicht.

Ich würde mich sehr darüber freuen, wenn der Eine oder Andere ein eigenes Skript schreibt und bereit ist, dieses zu zeigen. Im Gegenzug dazu dürft ihr selbstverständlich auch die Programmierung des Skripts von hobbyblogging.de einsehen.

Für Fragen zur Programmierung stehe ich zur Verfügung.

Ich wünsche dir nun viel Spaß beim Basteln.


Tools: Hier klicken (derzeit leider offline)

Kategorien: GeocachingWeb

Lukas

Hi, mein Name ist Lukas. Seit 2016 blogge ich auf Hobbyblogging über unterschiedliche Themen des Alltags. Schwerpunkt dabei ist das Thema Smart Home, speziell mit der Open Source Software OpenHab auf dem Raspberry Pi. Neben dem Bloggen absolviere ich derzeit mein Master-Studium im Fachbereich Wirtschaftsinformatik und arbeite als Werkstudent im Software Engineering.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.