home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
501.lha
/
CrossWordPuzCreator_v3.3
/
Cross.docD.pp
/
Cross.docD
Wrap
Text File
|
1991-04-09
|
12KB
|
322 lines
Crossword Puzzle Creator V3.3
-----------------------------
Copyright © 1991 by Jürgen Weinelt
Zur Kanzel 1
8783 Hammelburg
Deutschland
Crossword Puzzle Creator (CPC) V3.3 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 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, Festplatte und Kick/WB 1.3;
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] [-d]
(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
(NTSC: 5<=YSIZE<=25)
(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)
(4) DATA/ (...) .crd (Rätseldatenfiles)
In diesem Release wird CPC mit zwei Wortschatzdatenfiles geliefert:
words01.crw enthält deutsche Wörter
words02.crw enthält englische Wörter
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
Es werden keine Parameter benötigt, die Dateien werden mittels FileRequester
ausgewählt.
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)
- (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
History
=======
V3.3 PAL/NTSC-Erkennung durch Abfrage der Höhe des Workbench-Screen
kleine Schönheitsfehler in Programm und Dokumentation behoben
V3.2 erter RELEASE der M2-Version auf AMOK
Viel Spass.
####################################
########################################
## ##
## /¯¯¯¯\ \\|||// \ / ##
## / \ \|o o|/ \ / ##
## | | . | \ /\ / ##
## \ / | ' | \ / \ / ##
## \____/ \ ~ / \/ \/ ##
## ¯¯¯ ##
########################################
####################################