Crossword Puzzle Creator V3.2 ----------------------------- Copyright © 1991 by Jürgen Weinelt Zur Kanzel 1 8783 Hammelburg Deutschland Crossword Puzzle Creator (CPC) V3.2 ist Freeware. CPC darf auf nicht-kommerzieller Basis weitergegeben werden, z.B. im Rahmen von PD-Serien. Ich bin wirklich relativ tolerant, was die Kopiergebühren für PD-Disketten angeht; trotzdem behalte ich mir vor, bei besonders üblen Auswüchsen alle mir zur Verfügung stehenden rechtlichen Mittel einzusetzen! Der Quellcode ist bei diesem Release enthalten, allerdings stellt ihr besser keine besonders hohen Ansprüche... ich habe das Programm ursprünglich vor ca. fünf Jahren in C64-Basic (" **** COMMODORE 64 BASIC V2 **** 64K RAM SYSTEM 38911 BASIC BYTES FREE ", gelle?) entwickelt, vor ca. 3 Jahren umgesetzt in AmigaBASIC und während der letzten beiden Jahre nach und nach in Modula-II umgestrickt. Entsprechend sieht der Sourcecode aus... Hinweis: Benutzung des Programms auf eigene Gefahr; d.h. wenn es irgendwas demoliert, beschwert euch nicht bei mir! Über größere Bugs wüßte ich trotzdem gerne Bescheid... Hinweis: CPC 3.2 greift auf den Drucker über das PAR:-Device zu, weil das Rätsel im Grafikmodus gedruckt wird. (Kann mir jemand erklären, wie man sowas mit dem PRT: machen kann? Ich bräuchte punktweisen Zeilenvorschub und Ausgabe einer Zeile mit der "ESC *"-Sequenz). Der Ausdruck sollte mit jedem Epson-kompatiblen Drucker problemlos möglich sein, testen konnte ich es allerdings nur mit meinem Star NL10. Die Ausgabe der Rätsel-Lösung erfolgt übrigens über PRT: Hinweis: CPC benötigt sehr viel Speicher; auf 512K-Systemen mit Extras wie z.B. mehreren Laufwerken kann es u.U. Schwierigkeiten geben. Ich hatte auch einen sehr seltsamen Absturz auf einem solchen 512K-System; ich versuche zur Zeit, das Problem zu reproduzieren. Zur Zeit habe ich ehrlich gesagt den M2Amiga selbst im Verdacht, denn der stürzt ja (angeblich; siehe README auf Compiler-Disk) auch ab, wenn nicht viel Speicher übrig ist... Hinweis: Ich selbst habe einen A1000 mit 2.5MB und Kick/WB 1.3; ich hatte auch Gelegenheit, CPC auf einem A500 mit Kick1.2 zu testen; es lief nicht; ich weiß leider auch nicht warum, aber auf meinem A1000 konnte ich das Problem auch mit Kickstart 1.2 nicht reproduzieren. Wer Probleme mit dem Programm hat, möge mir bitte eine kurze Problembeschreibung mit möglichst exakter Angabe der Konfiguration (Hard- UND Software) schicken. Aufruf ------ CROSS [-xXSIZE] [-yYSIZE] [-n] (1) (2) (3) Das Programm akzeptiert bis zu 3 Parameter: (1) Größe des Rätsels in x-Richtung; 5<=XSIZE<=39; Default: 19 (2) Größe des Rätsels in y-Richtung; 5<=YSIZE<=35; Default: 19 (3) Debug-Modus für das Meldungs-Datenfile; Erklärung später. Die Parameter können in beliebiger Reihenfolge angegeben werden; alle Parameter sind optional. Vor dem Aufruf von CPC muß mittels ASSIGN ein logisches Device namens "CROSS:" definiert werden; dort sucht CPC seine Datenfiles: (1) DATA (Verzeichnis) (2) DATA/msgtxt.data (Datenfile mit mehrsprachigen Meldungen) (3) DATA/words01.crw (Wortschatzdatenfile) oder DATA(words02.crw (Wortschatzdatenfile) In diesem Release wird CPC mit zwei Wortschatzdatenfiles geliefert: words01.crw enthält deutsche Wörter words02.crw enthält englische Wörter (4) DATA/ (...) .crd (Rätseldatenfiles) Bedienung --------- Das Programm ist weitgehend selbsterklärend. Hier nur einige wichtige Hinweise: - Direkt nach dem Programmstart liest CPC das Message-Datenfile. Es erscheint eine Liste aller verfügbaren Sprachen (zur Zeit nur Deutsch und Englisch), und der Benutzer kann dann auswählen, welche Sprache verwendet werden soll (Zifferntaste, dann Return). Eine ausführliche Beschreibung von "msg.txt" folgt weiter unten. - Die Auswahl der einzelnen Funktionen erfolgt über die Gadgets auf der rechten Hälfte des Bildschirms. Die Bedeutung der Gadgets sollte weitgehend selbsterklärend sein. - Einige Anmerkungen zum "Automatiksuche"-Gadget: * Es muß sich ein Wortschatz im Speicher befinden. * Es muß bereits mindestens ein Wort vorher plaziert worden sein (als "Keim", aus dem das Rätsel "wachsen" kann). Das erledigt das Programm im Moment automatisch. * Die Automatiksuche wird durch nochmaliges Betätigen des Gadgets beendet, der gerade laufende Suchvorgang wird aber noch beendet. * Es kann jederzeit (wenn die Automatiksuche aus ist, jedenfalls) ein anderer Wortschatz geladen werden. - Das "Limit zurücksetzen"-Gadget: * CPC versucht zuerst möglichst lange Wörter zu plazieren; die "Limit"- variable gibt die momentan gültige Untergrenze für die Wortlänge an. * Mit dem "Limit zurücksetzen"-Gadget kann der Benutzer diese Längen- beschränkung selbst wieder auf den Ausgangswert hochsetzen. Message-Datenfile ----------------- Diese Datei enthält (fast) alle Texte, die das Programm benutzt, und zwar (zur Zeit) in Englisch und Deutsch. Die Datei kann problemlos um weitere Sprachen erweitert werden (insgesamt bis zu 9 Sprachen). Jeder Eintrag in der Datei belegt eine eigene Zeile. Aufbau des Message-Datenfile ---------------------------- Die erste Zeile enthält eine Ziffer. Diese Ziffer gibt die Anzahl der vor- handenen Sprachen an. Es darf nur eine einzelne Ziffer sein. Danach folgen die Bezeichnungen der einzelnen Sprachen (z.Z. ENGLISH und DEUTSCH). Die folgenden Einträge sind ebenfalls jeweils für jede Sprache einmal vorhanden; sie stellen die Programmmeldungen dar. Falls Sie das Message-Datenfile um eine neue Sprache erweitern wollen, beachten Sie bitte, daß die Übersetzungen nicht wesentlich länger als die Originalmeldungen sein sollten, da die Texte zum Teil in Gadgets oder Requestern auftauchen. Jeder Eintrag muß mit einer dreistelligen Nummer beginnen, die mit der tatsächlichen Meldungsnummer (durchzählen) übereinstimmen muß (Sicherheits- maßnahme). Das hört sich recht kompliziert an, aber wenn man sich das Message-Datenfile einmal genau ansieht, versteht man bald, was gemeint ist. Die einzige Ausnahme is die die Meldung Nummer 999, die das Dateiende anzeigt. Nach der Meldung 999 können beliebige Kommentare angehängt werden, der Rest des Files wird nämlich ignoriert. Falls bei der Anpassung an eine neue Sprache Schwierigkeiten auftreten sollten, kann man CPC mit der Option "-d" aufrufen, dann werden während des Programmlaufs die Meldungen zusammen mit der Meldungsnummer ausgegeben; so können Probleme leichter lokalisiert und behoben werden. ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ############################################################################ Haben Sie Cross an eine weitere Sprache angepaßt? Bitte schicken Sie mir eine Diskette mit Ihrem "msgtxt.data"-File zu, damit ich es im nächsten Release berücksichtigen kann. Als Dank bekommen Sie Ihre Diskette mit einem anderen PD-Programm von mir zurück. ############################################################################ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Wortschatzdatenfiles -------------------- Eigene Wortschatzdatenfiles können jederzeit benutzt werden, wenn folgende Einschränkungen beachtet werden: (1) Alle Wörter müssen in GROSSBUCHSTABEN eingegeben sein. (2) Die Wörter dürfen keine Sonderzeichen enthalten, nur "A" bis "Z". (3) Die Wörter sollten eine ungerade Länge (=Anzahl von Buchstaben) haben, also 3, 5, 7, 9, 11, ..., 25 Buchstaben (Ausnahme: zweibuchstabige Wörter). Diese Einschränkung ist nötig, um eine optimale Vernetzung der Wörter untereinander zu erreichen. Wenn Wörter mit gerader Länge benutzt werden, können später im Rätsel unter Umständen größere Lücken auftreten. Die Wörter sollten außerdem nach der Länge sortiert sein; eine zusätz- liche alphabetische Sortierung ist nicht zwingend erforderlich. (4) Kein Wort darf länger als 25 Buchstaben oder kürzer als 2 Buchstaben sein. (5) Die Wortschatzdatei darf keine Leerzeilen enthalten. (6) Der letzte Eintrag muß unbedingt "***END***" sein, ohne die Anführungs- zeichen natürlich. Mit dem ebenfalls mitgelieferten Hilfsprogramm "PreProcessor" kann man eine normale ASCII-Textdatei in eine Wortschatzdatei umwandeln. Dazu filtert man einen beliebigen Text durch den PreProcessor und sieht sich das resul- tierende File mit einem ASCII-Editor an. Dabei löscht man einfach alle Wörter, die nicht benötigt werden, wieder heraus (es sind wahrscheinlich auch einige Wörter bei der Umwandlung verstümmelt worden). So kann man in wenigen Minuten fast mühelos neue Wortschatzdateien erzeugen. Aufruf des PreProcessors: PreProcessor infile outfile Beide Parameter sind unbedingt nötig. Hinweis: Der PreProcessor arbeitet mit einem rekursiven Algorithmus (zum Sortieren wird nämlich ein binärer Baum aufgebaut); deshalb sollte genügend Stack-Speicher reserviert sein. Gegebenenfalls kann der CLI-Befehl "STACK" benutzt werden, um mehr Stack- Speicher zu reservieren. Ich arbeite z.B. prinzipiell mit 50000 Bytes Stack. PreProcessor ist übrigens auch ansonsten ein ziemlicher Speicherfresser... bei umfangreicheren ASCII-Dateien wird es vermutlich Schwierigkeiten mit 512K-Amigas geben. Eine Warnung: Besonders umfangreiche Wortschatzdaten haben natürlich den Vorteil, daß besonders gut vernetzte Rätsel entstehen; allerdings sollte man auch bedenken, daß die Rechenzeit mit zunehmendem Umfang des Wort- schatzes rapide ansteigt... und zwar nicht bloß linear! Meine Empfehlung: man benutzt am besten mehrere (kleinere) Wortschatz- datenfiles, und lädt immer dann, wenn für ein Datenfile keine Wörter mehr plaziert werden können, das nächste File nach. Besonders sinnvoll wäre es dabei, wenn man die Wörter gemäß ihrer Länge auf die Datenfiles verteilen würde, z.B. File | Wortlänge -------------+----------- words05.crw | 25..17 words06.crw | 15.. 9 words07.crw | 7.. 5 words08.crw | 3.. 2 Bekannte Probleme/Fehler von CPC -------------------------------- - Seltsames Verhalten bei Speichermangel (manchmal Absturz; Grund: unbekannt, aber Verdacht auf Compilerproblem) - Seltsames Verhalten bei Kickstart 1.2 (Probleme mit Screen ziehen, Vordergrund/Hintergrund klicken; Grund: unbekannt, konnte das Problem mit meinem A1000 nicht reproduzieren; allerdings ist der A500 meines Freundes etwas berüchtigt wegen derartiger Probleme, es könnte also auch blinder Alarm sein...) - (selten) Speicher-Fragmentierung (Grund: unbekannt) Wer selbst ähnliche Probleme hat, möge mir bitte eine möglichst detaillierte Beschreibung des Problems, sowie der zugrundeliegenden Hard-/Softwarekonfi- guration zuschicken. Danke. Zukünftige Erweiterungen von CPC -------------------------------- - "GENERIC"-Modus beim Ausdrucken des Rätsels, und zwar über PRT: - Hochauflösender Ausdruck über PAR: - Plaziertes Wort wieder entfernen - Verschiedene Grundmuster zur Plazierung der ersten "Keim"-Wörter - Icons für alle Datenfiles - NEW-Option - NEW_SIZE-Option - Benutzerkonfigurierbarkeit (wow, verdammt langes Wort... muß unbedingt noch ins Wortschatzfile) - möglicherweise dynamische Speicherung des Wortschatzes in einer doppelt verketteten Liste o.ähnl. (muß ich noch 'drüber nachdenken) - Rätsel mit nicht-rechteckigem Grundriss - automatische Erkennung von PAL/NTSC Viel Spass. #################################### ######################################## ## ## ## /¯¯¯¯\ \\|||// \ / ## ## / \ \|o o|/ \ / ## ## | | . | \ /\ / ## ## \ / | ' | \ / \ / ## ## \____/ \ ~ / \/ \/ ## ## ¯¯¯ ## ######################################## ####################################