amaze - GUI zum Erzeugen und Drucken von Labyrinthen
amaze
[−x Spalten] [−y
Zeilen] [−wall Wanddicke]
[−path Wegbreite] [−stay
Zahl] [−cuts Zahl]
[−s] [−creep ms]
[−option
... ]
Die
Einstellungen, z.B. die Farben, können in der GUI
verändert werden. Um herauszufinden, wo sie
zwischendurch gespeichert werden, benutze: amaze
-init
Um die Originaleinstellungen wieder zu erhalten, ohne
Rücksicht auf die gespeicherten Einstellungen,
verwenden Sie die -no-restore Option.
amaze ist eine grafische Anwendung um einfache Labyrinthe zu erzeugen und zu drucken. Die Labyrinthmerkmale (Größe und Aussehen) können mit dem GUI gewählt werden, oder vorausbestimmt auf der Kommandozeile.
Terminologie
Ein Labyrinth besteht für uns aus einem Raster von
Fliesen, und eine Reihe von Wände zwischen den Fliesen.
Zwischen jeweils zwei benachbarten Fliesen gibt es entweder
eine Wand oder keine, und wenn es keine gibt, dann sind die
beiden Fliesen zum Durchlaufen verbunden. Wenn eine Fliese A
mit Fliese B verbunden ist, und diese B mit C, dann sind A
und C ebenfalls (indirekt, über B) verbunden. Wir
nennen diese Fliesenreihenfolge A-B-C ein Pfad von A
nach C. Jedes Labyrinth hat eine Abfahrt-Fliese und
Ankunft-Fliese; der Pfad zwischen diesen beiden Fliesen wird
die Lösung des Labyrinths genannt (es kann nur einen
solchen Weg geben). Die Freude und Herausforderung eines
Labyrinths bestehen traditionell daraus, das
Lösungspfad durch das Labyrinth zu finden.
Aktionen
Die grafische Oberfläche zeigt eine Schaltfläche
um den Labyrinthbau zu steuern, und ein Labyrinth. Das
Labyrinth wird zufällig generiert, jedes Mal wenn Sie
das die Labyrinthrastermaße ändern (siehe
"Breite" und
"Höhe"-Steuerelemente), oder wann immer Sie
den Datei > Neu Menüpunkt benutzen. Mit
Bearbeiten > Zeig Pfad wählen Sie
ob die Lösung (der "Brotkrümmelspur",
frei nach Grimm) durch das Labyrinth nicht oder doch auf dem
Bildschirm angezeigt wird. Jedes Mal, wenn Sie es
einschalten, wechselt der Anzeigemodus zwischen
stationär und animiert ("schleichend" durch
das Labyrinth). Siehe auch Option -creep. Wenn Sie
das Labyrinth drucken (mit Datei > Druck ...)
werden zwei Seiten produziert: zunächst das Labyrinth
ohne die Lösungsangabe, und dann das Labyrinth mit
einer gestrichelten Linie um die Lösung zu zeigen.
Grundriß
Sie können ein Grundrißbild (auch bekannt als
"Maske") eingeben, um den Umriß des
Labyrinths zu definieren. Standardmäßig wird das
Labyrinth den ganzen rechteckigen Raster von
verfügbaren Fliesen füllen. Eine Maske besteht aus
einem Bild und einer "toten" Farbe. Derzeit ist
die Tote Farbe die des (0,0) Punktes im Bild. Jedes
Bildpunkt in der Maske mit dieser Farbe wird als totes Punkt
gedeutet. Wenn Sie eine Maske definieren, wird es gedehnt um
das Fliesenraster abzudecken; danach wird jede Fliese, deres
Mittelpunkt einem toten Bildpunkt in der Maske entspricht,
aus dem Labyrinth ausgeschlossen. Also, wenn die Maske ein
Bild einer Katze auf einem (einfarbigen) weißen
Hintergrund ist, wird das Labyrinth die Form einer Katze
haben. Sie können das Grundrißbild mit Datei
> Grundriß öffnen laden, oder ziehen Sie
einfach ein Bild auf die Leinwand (muß eine lokale
Datei entsprechen).
Hinweis
Intern ist das Labyrinth als eine Reihe von Zellen
vertreten. Für quadratische und dreieckige Fliesen,
entspricht einer Fliese eine Zelle, für sechseckige
Fliesen ist jede Fliese zwei Zellen groß; für
achteckige, ein oder drei. Einige Hinweise in der
Dokumentation dürften unklar sein, wenn Sie sich diesem
Unterschied nicht bewußt seien.
Die Version von amaze für MS Windows läuft wie eine reine GUI-Anwendung, ohne ein angeschlossenes Konsole-Fenster. Dies bedeutet, daß es keine "Standard-Ausgabe" gibt, also wenn Sie z.B. das Ergebnis von -init wissen wollen, müssen Sie die -out Option auf der Kommandozeile vorhergehen lassen.
-x Spalten
gibt die Anzahl der Spalten von Fliesen im Labyrinth. Sie können diese später einfach in der GUI ändern unter Verwendung der "Breite"-Zähler oder -Schieberegler.
-y Zeilen
gibt die Anzahl der Zeilen von Fliesen im Labyrinth. Sie können diese später einfach in der GUI ändern unter Verwendung der "Breite"-Zähler oder -Schieberegler.
-p/-path Bildpunkte
gibt die gewünschte Breite, in Bildpunkten, des Lösungspfades durch das Labyrinth, falls es in der GUI angezeigt wird (siehe Option −s). Sie können diese später einfach in der GUI ändern unter Verwendung der "Pfad"-Zähler oder -Schieberegler. Wenn das Fenster zu klein ist, kann das Pfad schmaler gezeichnet werden.
−wall Bildpunkte
gibt die gewünschte Breite, in Bildpunkten, der Wände im Labyrinth. Sie können diese später einfach in der GUI ändern unter Verwendung der "Wand"-Zähler oder -Schieberegler. Wenn das Display zu klein ist, können die Wände schmaler gezeichnet werden.
−stay Faktor
bestimmt, wie lange die einzelnen Schritte in das Labyrinth versuchen geradeaus zu gehen. Auf 1 gestellt, ist die Richtung völlig zufällig; auf N ist die Chance 1 auf N daß willkürlich gewählt wird statt geradeaus. Beachten Sie, daß völlig zufällige Labyrinthe zu vergleichsweise langen Lösungpfaden neigen.
−cuts Zahl
versucht bis an die angegebene Anzahl von zusätzlichen Querschnitte zwischen benachbarten Zellen abseits vom Pfad hinzufügen. Null Schnitte bedeutet daß das Labyrinth keine Schleifen im Wege hat, und nicht-Null bedeutet, daß einige Wände nicht mit der Außenmauer verbunden sind. Die Zahl ist eine Obergrenze, das Labyrinth kann am Ende weniger Schnitte erhalten.
−tile Form
gibt die Form der Labyrinthfliesen: "triangle" (Dreieck), "square" (Rechteck), "hexagon" (Sechseck), oder "octagon" (Achteck).
−mask Datei
wird das Bild in der Datei verwenden, um ein Teil des Fliesenrasters zu maskieren mit der Farbe des (0,0) Bildpunkts als "toter" Farbe. Also, wenn Sie ein Bild einer Gestalt auf einem monochromen Hintergrund haben, erhalten Sie ein Labyrinth in der gleichen Form. Sonderfälle für Datei sind [total] (ohne Maske), [round] (eingebaute Kreisform), und [heart] (zum Valentinstag). Wenn Sie unbedingt eine Datei mit einem Namen der wörtlich mit "[" anfängt verwenden müssen, fügen Sie vor dem Namen den Präfix [image] ein.
−path-color Farbe
bestimmt die Lösungspfadfarbe. Eine detaillierte Diskussion der Farbnamen finden Sie in http://doc.qt.nokia.com/4.7/- qcolor.html#setNamedColor . Beispiele: "steelblue", "#112233".
−tile-color Farbe
bestimmt die Fliesenfarbe. Vgl. Option −path-color.
−text-color Farbe
bestimmt die Farbe des Nachrichttexts. Vgl. Option −path-color.
−text Text
bestimmt den Nachrichttext. Die Nachricht wird verteilt über dem Lösungspfad gezeigt (eine Buchstabe je Fliese, mit willkürlichen Zwischenräumen), so daß das Auffinden der Lösung einem gleichzeitig das Lesen der Nachricht ermöglicht.
−wall-color Farbe
bestimmt die Wandfarbe im Labyrinth. Vgl. Option −tile-color.
−do-show
−s |
zeigt das Lösungspfad als gepunktete Linie in dem Labyrinth in der GUI. |
−cover 0-100
bestimmt welcher Prozentsatz vom Pfad während der Animierung am höchsten gleichzeitig gezeigt wird. Das Pfad wächst vom Abfahrtspunkt aus, mit der Schrittgröße (sehe Option −steps). Sobald dieser Prozentsatz erreicht ist, fängt das Hintere an im selben Takt richtung Ankunfstpunkt zu schrumpfen.
−creep ms
gibt das Intervall (in Millisekunden) zwischen Schritte der Pfadanimation. Wenn der Wert gleich Null ist, wird das Pfad überhaupt nicht animiert werden.
−steps Zahl
wird das Pfad in dieser Zahl von Schritten von Abfaht bis Ankunft animieren. Die effektive Schrittgröße wird mindestens eine Zelle betragen.
−out Pfad
leitet die Standard-Normalausgabe in die angegebene Datei um. Unter MS Windows müssen Sie diese an einen beliebigen Ausgang von z.B. erhalten −help oder −init.
−err Pfad
leitet die Standard-Fehlerausgabe in die angegebene Datei um. Unter MS Windows brauchen Sie diese Option um nicht-GUI-Fehlermeldungen zu erhalten.
−std Pfad
leitet die Standard-Normal- und -Fehlerausgabe zusammen um in die angegebene Datei. Die beiden Standard-Ausgaben stattdessen separat auf dieselbe Datei umlegen funktioniert nicht; die zweite wird die erste ersetzen.
−locale Gebietsschema
wählt explizit die in den GUI-Texten verwendete Sprache. Derzeit (teilweise) unterstützt: "da", "de" (= Deutsch), "en_GB", "en_US", "eo", "es", "fr", "nl", und "zh_CN".
−mini |
schrumpft Sie die Benutzeroberfläche um auf einem kleineren Bildschirm zu passen. Mit diesem können Sie amaze bis zu etwa 320×200 Bildpunkte effektiv nutzen. |
−do-splash
zeigt ein Begrüßungsbild beim Starten.
−no-splash
zeigt kein Begrüßungsbild beim Starten.
−no-restore
ignoriert alle gespeicherten Einstellungen, und nimmt Rückgriff auf die eingebaute Standardwerte.
−no-retain
wird die geänderte Einstellungen nicht speichern.
−init |
druckt den Pfad der Datei, in der die Einstellungen gespeichert werden. |
Allgemeine
Qt-Optionen
Diese werden von den verwendeten Qt-Widget 4.7 Bibliotheken
verarbeitet.
−style= Stil
−style Stil
Stil legt die Anwendung GUI-Stil. Mögliche Werte sind motif, windows, und platinum.
−stylesheet= Stilblatt
−stylesheet Stilblatt
bestimmt das Stilblatt der Anwendung. Der Wert muss ein Pfad zu einer Datei sein die das Stilblatt enthält. Hinweis: Relative URLs in der Stilblattdatei sind bezogen auf dem Stilblattdatei- pfad.
−session= Sitzung
−session Sitzung
greift zurück auf die Anwendungseinstellungen einer früheren Sitzung.
−widgetcount
druckt am Ende eine Debug-Meldung über die Anzahl der unzerstörten Widgets und die maximale Anzahl an je gleichzeitig existierende Widgets.
−reverse
schaltet die Layout-Richtung der Anwendung auf Qt:: RightToLeft
−graphicssystem
bestimmt welches Hintergrundsystem für Bildschirm-Widgets und QPixmaps verwendet wird. Verfügbare Optionen sind raster und opengl.
−nograb
sagt Qt, daß es niemals die Maus oder die Tastatur vorgreifen soll. (nur Qt mit QT_DEBUG.)
−dograb
während einem Debugger-Sitzung kann ein implizites −nograb ergeben, verwenden Sie −dograb um dies zu vermeiden. (Nur Qt mit QT_DEBUG, nur unter X11.)
−sync |
schaltet auf synchronem Modus für die Fehlersuche. Siehe Debugverfahren für eine ausführlichere Erklärung. (Nur Qt mit QT_DEBUG nur, nur unter X11.) |
−direct3d
wird die Direct3D-Mahler verwenden als Standard Widget-Mahler in Qt. Diese Funktionalität ist experimentell. (Nur auf Microsoft Windows).
Allgemeine
X11-Optionen
Die X11-Version von Qt unterstützt einige traditionelle
X11-Kommando- zeilenoptionen.
−display Anzeige
gibt die X-Anzeige (Standard ist $DISPLAY).
−geometry Geometrie
bestimmt die Geometrie des Clients vom dem ersten Fenster, das angezeigt wird.
−fn Font
−font Font
definiert die Anwendungsschriftart. Die Schrift sollte als X-Schriftart-Beschreibung gegeben werden.
−bg Farbe
−background Farbe
legt die Standard-Hintergrundfarbe und eine Anwendungspalette fest (helle und dunkle Farbtöne werden berechnet).
−fg Farbe
−foreground Farbe
wird die Standard-Vordergrundfarbe.
−btn Farbe
−button Farbe
wird die Standard-Schaltfläche Farbe.
−name Name
wird der Name der Anwendung.
−title Titel
wird der Titel der Anwendung.
−visualTrueColor
zwingt der Anwendung auf einem 8-Bit-Display eine TrueColor-Darstellung zu verwenden.
−ncols Zahl
begrenzt die Anzahl der zugewiesenen Farben im Farbwürfel auf einem 8-Bit-Schirm, falls die Anwendung die QApplication::ManyColor Farbspezifikation verwendet. Wenn die Zahl 216 lautet, dann wird ein 6×6×6-Farbwürfel verwendet (dh 6 Rot-, 6 Grün und 6 Blau-Stufen); für andere Werte wird ein Würfel annähernd proportional zu einem 2×3×1 Würfel verwendet.
−cmap |
läßt die Anwendung auf einem 8-Bit-Schirm ein privates Farbroster installieren. | ||
−im |
wählt den Eingabemethode-Server (entspricht dem Festlegen der XMODIFIERS Umgebungsvariable). |
−inputstyle
definiert, wie die Eingabe in das gegebene Widget eingefügt wird, z.B. läßt onTheSpot die Eingabe direkt im Widget erscheinen, während overTheSpot die Eingabe in einem über das Widget schwebenden Feld zeigt und sie erst dann eingefügt, wenn die Bearbeitung zu Ende ist.
Amaze ergibt einen Rückwert ungleich Null nur bei einem fatalen internen Fehler oder ungültiger Kommandozeile.
Befehlszeilenargumentfehler werden auf der Standard-Fehlerausgabe gemeldet. Fehler bei der GUI-Verwendung werden in der Regel mit übersetzten, vorgeschobenen Dialogfenstern angezeigt.
Umgebungsvariablen werden nicht verwendet um dieses Programms zu konfigurieren. Die eingebundenen Bibliotheken (für Qt und X11 unter Linux) können eigene Umgebungsvariablenabhängigkeiten vorweisen.
Bitte beachten Sie daß die hier gegebenen Dateipfade für Ubuntu gelten, und auf anderen Plattformen unterschiedlich sein können.
/usr/share/amaze/*.qm
− Die Qt Lokalisierungsdateien
/usr/share/applications/amaze.desktop
/usr/share/app-install/desktop/amaze.desktop
− Für die Desktop-Menüs
/usr/share/doc/amaze/*
− Urheberrecht u.s.w.
/usr/share/icons/hicolor/*x*/apps/amaze.png
− Desktop-Anwendung und Menü-Icons
/usr/share/man/de/man1/amaze.1.gz
− Diese Handbuchseite
/usr/bin/amaze
− Die ausführbare Datei
$HOME/.config/Morgul/amaze.conf
− Speichert die Einstellungen zwischen den Läufen für diesen Benutzer
http://qtamaze.sourceforge.net/version.html
− Wenn die Update-Prüfung sieht für die aktuelle Version und die Release-Nummer
Siehe Option -init für die system- und benutzerspezifische Datei verwendet um die Einstellungen zwischen Sitzungen zu speichern.
Dies ist die dritte Version, 1.2. (Die erste Version, 1.0, ist mittlerweile veraltet.) Es steht auf http://qtamaze.sourceforge.net als Quelle (mittels CVS) zur Verfügung, als Ubuntu/Debian-Paket, und als Windows XP MSI-Datei.
Amaze versucht, die GUI-Richtlinien und Qt-Muster in der Qt-Dokumentation 4.5-4.7 zu folgen, sowie die Leitlinien für die Gnome ". Desktop"-Datei und die WiX Empfehlungen für den MSI-Installer.
Die Erzeugung von Labyrinthe ist nicht gerade ein neues oder herausforderndes Thema für sich, sondern macht mir Spaß genug, um als Gegenstand eines Projekts zu verwenden.
Für weitere Informationen über offene Fragen und Veränderungen, besuchen Sie die Projekt-Tracker bei http://qtamaze.sourceforge.net/, oder holen Sie sich die Quellen über CVS und schauen Sie die amaze/TODO Datei an.
Zu Tun
− Wir zwingen das Labyrinth in den Anzeigebereich zu
passen. Das macht es einfach die Größe zu
ändern, beschränkt die Benutzer aber darauf nur
Labyrinthe zu machen, die auf dem Bildschirm passen.
− Diese Handbuch-Seite ist nur Teil des Ubuntu-Pakets,
für die Windows MSI sollten wir ein PDF mitliefern.
Lokalisierung
− Ich habe die Lokalisierung für [da], [de],
[eo], [es], [nl], [zh_CN] teilweise angefangen, bin mir aber
sicher, daß die Übersetzungen nicht alle stimmen,
insoweit sie überhaupt vorliegen.
− Die nicht-"Kommentar" Einträge in der
Datei amaze.desktop wurden noch nicht lokalisiert. Das
Gleiche gilt für den Text der gedruckten
"-help"-Option.
Ausgabe-Format
− Wir unterstützen Pfad-Animation z.Z. nur auf
dem Bildschirm, aber nicht in den Export-Formaten, also z.B.
kein animiertes GIF.
Konfiguration
− Heute hat der Benutzer keine Kontrolle über den
Punkt und Strich-Muster des Lösungspfades.
−
"Datei > Exportieren" ist ein wenig komisch: es
hat keinen "Alle Dateien (*.*)" Filter, es
schließt eine transparente Rand mit ein wenn die
Fensterfläche größer als das Labyrinthbild
ist, und könnte ansonsten besser gestaltet werden.
− "Datei > Blender", "Datei >
Maya" und "Datei > Virtual" sind
experimentell und nicht ganz vollständig; sie
exportieren je nachdem ein Blender Python-Skript, ein Maya
MEL-Skript und eine X3D/VRML Datei. Diese mangeln
Fliesenböden, zeigen das Lösungspfad nicht, und
für MEL werden Sie die Farben vermissen.
− Der Leerraum im Fenster wird in exportierten Bildern
mitgespeichert, statt sauber auf nur das eigentliche Bild
zugeschnitten zu werden.
− Wenn Sie den Ausgangspunkt direkt neben dem
Ankunftspunkt auswählen, kann es sein, daß das
Lösungspfad überhaupt nicht das Labyrinth
durchläuft. Wenn sie auf entgegengesetzten Seiten der
gleichen Ecke liegen, kann die Ecke unsichtbar erscheinen,
weil sie keine Außenwände hat.
− Ein Labyrinth mit nur einer Spalte oder einer Zeile
von Fliesen kann sich seltsam herausstellen.
− Weitere Fehler und Unvollkommenheiten finden Sie
beschrieben in den Fehlermeldungen und
Verbesserungsorschlägen auf
http://sourceforge.net/p/qtamaze/_list/tickets.
amaze −no-splash −s
tinco bei SourceForge
xlaby (1).