Skip to content

BF-Cache Mystery Cache

Hidden : 7/27/2004
Difficulty:
3.5 out of 5
Terrain:
2 out of 5

Size: Size:   regular (regular)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

Ein Cache für Informatik Interessierte die meine Lieblings Programmiersprache kennen lernen möchten.
Die angegebenen Koordinaten sind nicht die Cache-Koordinaten, sondern die Koordinaten einer Parkmöglichkeit.


BF ist eine außergewöhnliche Programmiersprache, die ursprünglich um 1993 von Urban Müller für den Amiga entwickelt wurde. Die Sprache arbeitet mit einem Datenarray aus einer festgelegten Anzahl von Parzellen (in der Regel 10.000-30.000) und besteht aus einem Befehlssatz von acht Befehlen, die zur Navigation innerhalb der Zellen, zu deren Manipulation und als Schleifenkonstrukte dienen. Der Zugriff auf das Datenarray geschieht über einen Zeiger und man hat ausserdem noch die Möglichkeit Zeichen einzulesen bzw. auszugeben. Man kann zeigen, das BF Turing vollständig ist. D.h. man kann mit ihr jedes berechenbare Problem, das mit endlichem Speicher lösbar ist, lösen.

Die BF Befehle:
 +  Aktuelle Zelle um 1 hochzählen
 -  Aktuelle Zelle um 1 runterzählen
 >  Den Zeiger auf die nächste Zelle setzen
 <  Den Zeiger auf die vorherige Zelle setzen
 [  Start einer Schleife. Ist der Wert der aktuellen Zelle gleich Null, wird die Schleife übersprungen bzw. abgebrochen.
 ]  Ende einer Schleife. Das Programm wird am zugehörigen Schleifenanfang fortgesetzt.
 .  ASCII-Wert der aktuelle Zelle ausgeben
 ,  Zeichen einlesen und ACSII-Wert in der aktuellen Zelle speichern


Das ist schon die ganze Sprache. Wichtig ist noch zu wissen, dass das gesamte Datenarray zu Beginn mit 0 initialisiert ist, und der Zeiger auf den Anfang des Datenarrays zeigt.

Dieser Aufbau macht es sehr einfach einen Interpreter für die Programmiersprache zu schreiben. Der original Interpreter von Urban Müller war nur 240 Bytes lang. Leider ist das Programmieren in BF etwas mühselig. Daher wohl auch der (unabgekürzte) Name der Sprache.

Aber ihr habt Glück, das Programmieren habe ich schon für euch übernommen.
Das folgende Programm sagt euch wo der Cache versteckt ist:

>++++++++[<++++++++>-]<+++.>+++++[<++++++>-]<.++.>++[<++>-]<+.---.>+++++++[<----
---->-]<.>+++++[<++++++>-]<.>++++++[<++++++>-]<..+++.>+++[<---->-]<--.>++[<++>-]
<+.>++[<++>-]<+.>+++[<---->-]<-.>++++[<++++>-]<+++.>+++[<----->-]<.>+++[<+++>-]<
.>+++++++[<------->-]<---.>+++++[<----->-]<-.>++++++[<+++++++>-]<++++.>+++++[<--
--->-]<.----.>++++[<---->-]<-.>++++[<++++>-]<++.+.>++[<-->-]<-.>+++[<+++>-]<++.>
++[<-->-]<-.--.>++++[<---->-]<--.>++++++[<++++++>-]<+.>+++[<---->-]<--.>++++[<--
--->-]<---.>++++[<++++>-]<++..----.++++.++++.----.>++++++[<------>-]<----.>+++++
++[<++++++++>-]<++++++.>+++++[<++++++>-]<+++.>++[<++>-]<+.>++[<+++>-]<.>+++++++[
<-------->-]<--.>+++++[<----->-]<-.>++++++[<+++++++>-]<+++.>+++++[<+++++>-]<++++
.>+++[<++++>-]<.>++++[<---->-]<.>+++[<+++>-]<+.>++[<++>-]<+.---.>++++[<---->-]<-
.>++++++++[<-------->-]<-.>+++++++++[<+++++++++>-]<.+.>++++[<---->-]<-.>++++++++
[<-------->-]<-.>++++++[<+++++++>-]<.>+++++[<++++++>-]<.---.>++[<++++>-]<.>++[<+
+>-]<+.>++[<+++>-]<+.>++++[<------>-]<.>++++++++[<-------->-]<-.>+++++++++[<++++
+++++>-]<+.++++.>++++[<----->-]<-.>++++[<++++>-]<+.>+++[<---->-]<-.>++++++++[<--
------>-]<-----.>+++++++++[<+++++++++>-]<+++.>+++[<----->-]<.---.++++..>+++[<+++
+>-]<.>++++[<---->-]<-.>++++++++[<-------->-]<-.>++++++[<+++++++>-]<+++++.>+++++
[<+++++>-]<.>++[<++++>-]<.>++[<++>-]<+.---.


Viel Spaß beim Programmieren und Cachen wünscht euch
Thommy

Quellen und Links zum Thema:



Additional Hints (No hints available.)