Yet Another Math Parser

Es gibt Dinge welche man immer wieder gebrauchen kann. In diese fallen unter anderem Matheparser. Einer dieser Parser ist der Yet Another Math Parser kurz YAMP. Dabei handelt es sich um einen von Florian Rappl in C# geschriebenen Parser. Der Parser beherscht dabei die Grundrechenarten, sowie trigometrische Funktionen (Sinus, Cosinus et cetera) und einige andere Dinge. Die Bibliothek steht dabei unter der BSD Lizenz, nachdem sie vorher nur unter der CPOL Lizenz verfügbar war. Bezogen werden kann sie unter https://github.com/FlorianRappl/YAMP.

Weitere Informationen gibt es unter:
http://www.florian-rappl.de/Articles/Page/143/YAMP

Baldur’s Gate fürs iPad

Baldur’s Gate, seiner Zeit das erste Spiel von Bioware, hat mittlerweile seine 14 Jahre auf dem Buckel. Schon seit einiger Zeit wird an einer Neuauflage des Spieles gearbeitet. Diese soll den Namen „Baldur’s Gate: Enhanced Edition“ tragen und am 30. November 2012 erscheinen. Ursprünglich war der 18. September 2012 als Starttermin angedacht, allerdings war man mit der Qualität nicht zufrieden, so das hier nachgebessert wird.

Neben Windows wird das Spiel für Mac OS X, Android (wird später veröffentlicht) und auch das iPad (iOS) erscheinen. Die mobilen Versionen kosten dabei $9.99, die Varianten für Mac OS X und Windows schlagen mit $19,99 zu Buche. Im Gegensatz zum Originalspiel, setzt die Neuauflage auf eine neue verbesserte Version der Infinity Engine und bietet auch neue Inhalte. Die offizielle Seite des Spieles ist unter http://www.baldursgate.com/ zu finden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Baldurs_Gate#Neuauflage

Einem iOS Xcode Projekt eine Bibliothek hinzufügen

Es gibt die einfache Art und die nicht ganz so einfache Art. So ist es zum Beispiel unter C# ziemlich einfach eine Bibliothek zu einem Projekt hinzuzufügen und diese anschließend zu benutzen. Also was liegt näher als das gleiche unter Objective C mittels Xcode zu versuchen.

Und dort merkt man dann das Objective C ein Superset von C ist. Es ist leider nicht ganz so einfach wie man es sich wünscht. Aber fangen wir von vorne an. Gegeben seien zwei Projekte:

  • Taschenrechner (iOS App)
  • LibCore (Cocoa Touch Bibliothek)

Die Bibliothek „LibCore“ soll dabei dem Projekt „Taschenrechner“ hinzugefügt werden, damit man dieses die entsprechenden Funktionen nutzen kann. Unter Objective C gibt es Frameworks und Bibliotheken. Frameworks können auf den iOS Geräten nicht benutzt werden, damit bleiben nur noch statische Bibliotheken.

Die Einstellungen für die Suchpfade

Im ersten Schritt müssen im Projekt die Suchpfade definiert werden. Dazu gehen wir in die Projekteinstellungen in den Punkt „Build Settings“ und suchen dort nach „Header“. Die Suche wird dann den Punkt „Header Search Paths“ finden. Dort tragen wir den Pfad zur entsprechenden Bibliothek ein.

Nun werden Headerdateien welche mittels:

#import "LibCore.h";

eingebunden werden vom Compiler gefunden. Beim Linker kommt es allerdings noch zu Fehlern. Deshalb ziehen wir das Projekt (die „LibCore.xcodeprj“) auf unserer Taschenrechnerprojekt. Dadurch ist dieses Projekt nun ein „Unterprojekt“ von Taschenrechner. In den Projekteinstellungen suchen wir nun den Tab „Build Phases“ auf „Link Binary With Libraries“ und fügen dort die „LibCore.a“ hinzu.

Die Bibliothek wird dem Linker bekannt gemacht

Danach sollte das Projekt mit der Bibliothek ohne Probleme kompilieren.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Xcode
http://de.wikipedia.org/wiki/Objective_C

Freier Matheparser für Objective C

Bei der Entwicklung möchte manchmal mathematische Ausdrücke wie folgende lösen:

5*sin(3.4)/2+1234

Dabei möchte man diese Ausdrücke nicht während der Compilezeit lösen, sondern zur Laufzeit. Hier bietet sich ein Matheparser an. Ein solcher für Objective C ist „DDMathParser“ welcher unter https://github.com/davedelong/DDMathParser zu finden ist. Der Parser steht dabei unter der MIT-Lizenz und kann dabei mit einer Reihe von Operatoren, Ausdrücken und Funktionen umgehen, was man sich auch in der ausführlichen Dokumentation ansehen kann.