SuperCode Version 2.05 - Dokumentation 28.Juli 1994 Autor: Stefan Bodora 0. Über den Status des Programms Das Programm SuperCode Version 2.05 ist Freeware. Alle Rechte bleiben beim Autor Stefan Bodora. Es ist nicht erlaubt, Verände- rungen an den zum Programmumfang gehörenden Dateien vorzunehmen. Dazu zählt auch das Umbenennen der Dateien. Das Programm ist frei kopierbar, solange folgende Regeln beachtet werden: Das Kopieren im privaten Kreis ist erlaubt. Der Vertrieb per Datenfernübertra- gung ebenfalls. Das Programm kann in FD-Serien und deren CD-ROM- Derivate aufgenommen werden. Der Autor würde es begrüßen, wenn er darüber jeweils informiert werden würde. Jeder Vertrieb kommer- zieller Art ist untersagt und Bedarf der schriftlichen Genehmigung des Autors. Beim Kopieren des Programmes müssen auf jeden Fall die folgenen Dateien im Programmumfang enthalten sein: SuperCode2.05 - Datei des ausführbaren Programms SuperCode2.05.info - Icondatei SuperCode2.05.dok - diese Dokumentation SuperCode2.05.dok.info - Icondatei WIE BEI JEDER SOFTWARE KANN AUCH BEI DIESEM PROGRAMM KEINE GARAN- TIE FÜR DAS EINWANDFREIE FUNKTIONIEREN GEGEBEN WERDEN. DER AUTOR ÜBERNIMMT DESHALB KEINE HAFTUNG FÜR SCHÄDEN, DIE AM DATENBESTAND DES BENUTZERS AUFTRETEN KÖNNTEN. 1. Programmfunktion Bei SuperCode handelt es sich um ein Spiel à la Mastermind. Hierbei geht es darum, mit möglichst wenig Versuchen oder in sehr kurzer Zeit eine bestimmte Farbkombination herauszufinden. Dabei erhält man nach jedem Versuch einige Hinweise, die einem bei der Lösung helfen. 2. Features - komplett in deutsch - Nutzung des Default Public Screens - Anpassung an Screenmode (Seitenverhältnis) des Screens - Anpassung an voreingestellten Zeichensatz des Screens - Anpassung an Farbtiefe des Screens - Bedienung über Maus und Tastaturkombinationen möglich - abspeicherbare Rangliste - letzte Position des Fensters wird in den ToolTypes abgespei- chert und bei Neustart wieder verwendet - Fenster kann mittels ToolType-Eintrages zusätzlich vergrößert werden - lauffähig ab OS 2.04 (Version 37) - läuft ab 512 KBytes RAM 3. Geschichte des Programms Zu Urzeiten der Programmierversuche des Autors entstand eine Version in AmigaBasic, die allerdings der aktuellen Version nur noch in Hinsicht der Spielregeln ähnlich und dazu noch gähnend langsam war. Die Version 1.00 wurde schließlich 1993 in "C" geschrieben und stellte sein erstes C-Projekt dar. Damals fand noch die Freeware- Version des DICE C-Compilers Verwendung. Das Programm öffnete sein Fenster noch auf einem eigenen Bildschirm. Die Version 1.10 behob ein paar harmlose Bugs und wurde so erwei- tert, daß das Porgramm sein Fenster auch auf der Workbench öffnen konnte, sofern diese mindestens 16 Farben zur Verfügung stellte. Diese Version sollte es ermöglichen, das Spiel auch auf AGA-Amigas mit VGA-Auflösungen oder auf Grafikkarten laufen zu lassen. Sie stellte aber nur eine Zwischenlösung dar. Zum Beispiel war die An- zeige je nach Auflösung unnatürlich verzerrt. Die Version 2.00 wurde von grundauf neu entwickelt, nachdem sich der Autor den Maxon C++ Compiler (Version 1.10.7) zulegte. Sie hatte viele neue Features und sollte auf allen Amigas ab OS 2.04 lauffähig sein. Die Version 2.01 behob einerseits einen Programmfehler, der das System zum Absturz brachte, wenn die Icon-Datei nicht vorhanden war. Es wurden weiterhin einige Optimierungen am Quelltext durch- geführt. Schließlich wurde die Möglichkeit geschaffen, das Fenster zu vergrößern, wenn es notwendig sein sollte. Die aktuelle Version 2.05 ist nun in der Lage, die Farben des De- fault Public Screens an seine Bedürfnisse anzupassen und die alten Farben bei Programmende wiederherzustellen. Diese Funktion ist über einen ToolType abstellbar. Entwickelt wurde die aktuelle Programmversion auf einem AMIGA 1200 mit 2MB RAM und 170MB Harddisk unter OS/WB 3.0 (39.106/39.29). 4. Installation des Programms Kopieren sie einfach das gesamte Verzeichnis (Schublade) oder dessen Inhalt in ein Verzeichnis ihrer Wahl. Fertig. 5. Start des Programms Zum Start klicken Sie einfach doppelt auf das Programmicon oder Sie wechseln in der Shell in das Verzeichnis, indem sich das Pro- gramm befindet und geben den Programmnamen ein: > CD //... > SuperCode2.05 bzw. > Run NIL: SuperCode2.05 Damit das Programm aber dann auch wirklich startet, ist davor einiges zu beachten. Zunächst benötigt das Programm die mathieeedoubtrans.library im LIBS:-Verzeichnis, da es auf einige Mathematikfunktionen des Betriebs systems zugreift. Als nächstes ist zu beachten, welchen Darstellungsmodus und wel- che Ausmaße der Default Public Screen (meistens der Workbench Screen) besitzt. SuperCode skaliert nämlich sein Fenster, um die Pixelverzerrungen, die bei verschiedenen Auflösungen entstehen, auszugleichen. Das ist erforderlich, um Quadrate auch wie Quadrate aussehen zu lassen. Der Effekt der Verzerrung ist am besten zu se- hen, wenn man den Bildschirmmodus des Workbenchscreens verändert - vormals quadratische Icons sehen danach rechteckig aus. Je höher nämlich die Auflösung wird, umso kleiner müssen natürlich die Pi- xel werden. Die Pixelausmaße sollen einmal anhand der PAL-Bild- schirmmodi veranschaulicht werden: Lores Hires Superhires ohne **************** ******** **** Interlace **************** ******** **** **************** ******** **** **************** ******** **** **************** ******** **** **************** ******** **** **************** ******** **** **************** ******** **** Interlace **************** ******** **** **************** ******** **** **************** ******** **** **************** ******** **** Es ist ersichtlich, das ein Pixel in SuperHires viermal schmaler ist als der entsprechende Lores-Pixel. Ein Pixel im Interlace-Mo- dus ist nur halb so hoch wie einer ohne Interlace. Eine Skalierung ist nur dann notwendig, wenn sich das Verhältnis von Breite zu Hö- he verändert, da das Programm davon ausgeht, daß ein LoRes-Pixel (ohne Interlace) auf dem Monitor eine quadratische Form hat. Da- raus folgt, daß das Fenster bei Lores ohne Interlace und Hires In- terlace nicht skaliert werden muß, da die quadratische Form beibe- halten wird. Bei SuperHires (ohne Interlace) dagegen wird das Fen- ster viermal breiter, was aber dadurch kompensiert wird, daß ein Standard-SuperHires-Screen ohnehin eine viermal höhere horizontale Auflösung hat. Bei SuperHires Interlace ist das Fenster dagegen nur doppelt so breit, da hier ein Pixel zwar ebenfalls viermal schmaler ist aber dafür die halbe Höhe hat. Zu beachten ist noch, das der Default Public Screen duchaus kleinere Ausmaße haben kann, als durch die Auflösung vorgeben. Zum Beispiel ein Screen von 320x256 Punkten in SuperHires Interlace mit 1280x512 Punkten Auflösung. Manch mal wird es also nötig sein, die Ausmaße oder die Auflösung des Screens zu verändern, damit das Fenster von SuperCode auch darauf paßt. Die Anpassung an die Auf- lösung sollte eigentlich mit allen Bildschirmmodi funktionieren. Auch auf Grafikkarten mit Workbench-Emulation müßte es funktionie- ren. Im Zuge der immer höheren Auflösungen werden viele Anwender auch größere Zeichensätze verwenden, um auf dem Monitor noch etwas er- kennen zu können. Dem trägt das Programm Rechnung indem es sich immer an den entsprechenden Screen-Font anpaßt. Dabei wird das Fenster ebenfalls skaliert. Das Programm bietet allerdings nicht die Möglichkeit, auf einen kleineren Zeichensatz auszuweichen, wenn der Screen für das Fenster zu klein sein sollte. Der Autor ist davon ausgegangen, daß nur die Anwender große Zeichensätze verwenden, die auch entsprechend große Auflösungen oder Screens verwenden. Andererseits ist das Programm so optimiert worden, daß es auf einem Hires-Screen (640x256) mit einem Font bis zur Größe von 15 Punkten sein Fenster öffnen müßte. Bei höheren Auflösungen kann der Zeichensatz entsprechend größer gewählt werden. Zuletzt ist noch die Farbtiefe des Default Public Screens zu be- achten. Sie sollte mindestens 2 Bitplanes (4 Farben) betragen. Am besten sind mindestens 4 Bitplanes (16 Farben) da bei weniger Far- ben die fehlenden Farbtöne als Muster emuliert werden. Muster sollten nur bei flimmerfreien Auflösungen oder bei großformatigen Monitoren verwendet werden. 6. Bediennung des Programms 6.1. Anzeigen und Ablauf des Spieles Nachdem das Programm erfolgreich gestartet wurde, öffnet sich das Hauptfenster des Programms. Es sind drei umrahmte Bereiche und zwei Gadgets zu erkennen. Den größten Teil des Fensters nimmt der Kombinationsbereich ein. Hier werden in insgesamt 10 Versuchen die gesuchten Kombinationen ermittelt. Rechts oben sieht man den Farb- auswahlbereich mit insgesamt 8 Farbauswahlfeldern. Rechts unten sieht man die vier Lösungsfelder, in denen später die gesuchte Farbkombination angezeigt wird. Um ein Spiel zu starten wählt man die Funktion "Start". Dazu klickt man auf das Gadget "Start", drückt die Taste "s", wählt den Menupunkt "Spiel->Start" oder gibt die Tastenkombination "Rechte Amiga + S" ein. Nun erstellt das Programm eine vierstellige Farbkombination. Um das Spiel einfacher zu gestalten, kommt keine der Farben doppelt vor. Nachdem dies geschehen ist, aktiviert das Programm das erste Feld in der ersten Zeile des Kombinationsfeldes. Das ist daran zu erkennen, daß das Feld jetzt "eingedrückt" erscheint. Klicken sie nun mit der Maus auf eines der Nachbarfelder, erscheint das Feld wieder erhöht und das angeklickte Feld wird aktiviert. Mit den Tasten "m" , "," , "." und "-" können Sie die einzelnen Felder ebenfalls aktivieren, wobei das "m" für das Feld am weitesten links und das "-" demzufolge für das Feld am weitesten rechts steht. Wenn Sie in eines der Felder im Farbauswahlbereich klicken, er- hält immer das gerade aktive Feld die Farbe zugewiesen, die von Ihnen angewählt wurde. Man muß also stets erst ein Feld aktivieren und dann die gewünschte Farbe anwählen. Man kann dem aktuellen Feld auch seine Farbe zuweisen, indem man eine der Tasten von "1" bis "8" anwählt. Die "1" steht dabei für die Farbe oben links und die "8" für die Farbe unten rechts im Farbauswahlbereich. Hat man seine Wunschkombination erstellt muß man dem Programm mitteilen, daß es die Kombination auf seine Richtigkeit überprü- fen soll. Dazu klickt man auf das Gadget "Weiter", drückt die Tas- te "w", wählt den Menüpunkt "Spiel->Weiter" oder gibt die Tasten- kombination "Rechte Amiga + W" ein. Sollte beim ersten Versuch noch eines der Felder leer sein, gibt das Programm eine entspre- chende Meldung und aktiviert dieses Feld, damit der Benutzer gege- benfalls eine Korrektur vornehmen kann. Eine Meldung erscheint auch, wenn eine der Farben aus Versehen doppelt vorhanden sein sollte. Hierbei wird das betreffende Feld jedoch nicht aktiviert, sondern das zuletzt aktive Feld bleibt aktiv, da das Programm ja nicht wissen kann, welches Feld geändert werden soll. Nachdem man notwendige Korrekturen vorgenommen hat muß man erneut die Funktion "Weiter" anwählen. Wenn das Programm danach nichts zu beanstanden hat, vergleicht es die eingegebene Kombination mit der vom Pro- gramm erstellten. Danach gibt es in dem Feld rechts neben den Kom- binationsfeldern Lösungshinweise. Es erscheinen entweder schwarze, weiße oder gar keine Kästchen. Ein schwarzes Kästchen bedeutet, daß eines der Felder der Farbkombination identisch mit einem in der gesuchten Kombination ist, also eine richtige Farbe an der richtigen Position aufweist. Ein weißes Kästchen hingegen zeigt an, daß ein Feld zwar eine Farbe hat, die auch in der gesuchten Kombination vorkommt, aber leider an einer falschen Stelle steht. Es erscheinen maximal 4 Hinweiskästchen. Wenn die richtige Kombi- nation gefunden wurde, sind demnach 4 schwarze Kästchen zu sehen. Nach der Kontrolle der Kombination wird immer das erste Feld der nächsten Zeile aktiviert, solange bis man seine 10 Versuche hinter sich hat oder die gesuchte Kombination gefunden hat. Mit Hilfe der bisherigen Lösungshinweise kann man in dieser Zeile weiter kombi- nieren. Oftmals kommt es vor, daß man in einem neuen Versuch nur einem einzigen Feld eine neue Farbe zuweisen möchte. Dabei ist es oft umständlich, die Farben, die sich nicht verändern jedesmal neu einzugeben. Als Abhilfe besitzt SuperCode das Feature, ab dem 2. Versuch die Farben des letzten Versuchs in die genau darunter lie- genden leeren Felder zu übernehmen sobald man die Funktion "Wei- ter" gewählt hat. Man muß also nur noch die eine gewünschte Farbe verändern, die restlichen werden in die leeren Felder übernommen. Wenn man eine Kombination erfolgreich gefunden hat, erhält man eine entsprechende Mitteilung mit der benötigten Zeit in Sekunden. Sollte man eine neue Rekordzeit haben erscheint nach dem Wegklik- ken des Requesters ein Fenster, in dem man seinen Namen für die Rangliste (oder auf Neudeutsch "Highscore") eingeben kann. Um das Fenster zu schließen drücken Sie bei aktiviertem String-Gadget die Returntaste oder klicken auf das Schließsysmbol des Fensters Wenn man die Kombination in 10 Versuchen nicht gefunden hat, er- scheint ebenfalls eine Mitteilung und man erfährt die bis hierher benötigte Zeit in Sekunden. Das Spiel ist nun beendet und man kann erneut ein neues Spiel starten. Auf jeden Fall wird nach Beendigung eines Spieles die gesuchte Farbkombination angezeigt, damit man den Spielablauf noch einmal nachvollziehen kann. Erst bei dem Start eines neuen Spieles werden alle Anzeigen in ihren Ursprungszustand versetzt. 6.2. Abbruch eines laufenden Spieles Dies ist möglich indem man die Funktion "Stop" wählt. Dazu wählt man den Menüpunkt "Spiel->Stop" oder gibt die Tastenkombination "Rechte Amiga + T" ein. Diese Funktion ist natürlich nur bei einem gerade laufenden Spiel anwählbar. Die gesuchten Farben werden hierbei jedoch nicht angezeigt. 6.3. Programminfo Über die Funktion "Über" können Sie sich ein kurzes Info zur ak- tuellen Programmversion anzeigen lassen. Wählen Sie hierzu den Me- nüpunkt "Spiel->Über..." oder geben Sie die Tastenkombination "Rechte Amiga + Ü" ein. Diese Funktion ist nur anwählbar, wenn ge- rade kein Spiel am laufen ist. 6.4. Programm beenden Um SuperCode zu beenden, wählen Sie den Menüpunkt "Spiel-> Ende...", geben die Tastenkombination "Rechte Amiga + E" ein oder klicken auf das Schließsymbol des Fensters. Nach einer Sicher- heitsabfrage beendet sich dann das Programm. 6.5. Rangliste Wenn Sie den Menüpunkt "Rangliste->Zeigen..." anwählen oder die Tastenkombination "Rechte Amiga + R" eingeben wird Ihnen in einem neuen Fenster die aktuelle Rangliste angezeigt. Durch einen Klick auf das Schließgadget verschwindet das Fenster wieder. Immer, wenn SuperCode beendet wird, speichert es die aktuelle Rangliste automatisch in der Datei "SuperCode.dat" in dem Ver- zeichnis, in dem sich auch die gestartete Programmdatei von Super- Code befand, ab. Wenn Sie die Rangliste löschen wollen, können Sie einfach diese Datei löschen. Das Programm findet die Datei beim nächsten Start nicht mehr und verwendet für die aktuelle Rangliste eine interne Vorgabe mit einfachen Werten. 6.6. Fensterposition Wie bereits am Anfang erwähnt wurde, speichert das Programm beim Beenden auch die letzte Fensterposition ab. Diese Werte finden sich danach in den Tooltypes "WINDOWLEFTEDGE=" und "WINDOWTOPEDGE=" wieder. Sie können die Zahlenwerte nach Belieben ändern und so an Ihre Bedürfnisse anpassen oder auch die Tooltypes löschen. Im letzteren Fall positioniert das Betriebssystem das Fenster für die jeweils nicht angegebene Koordinate. 6.7. Skalierung des Fensters Ab Version 2.01 ist es möglich, das Programmfenster mittels ei- nes ToolType-Eintrages zusätzlich zu vergrößern. Dies ist manchmal nötig, wenn bei sehr hohen Auflösungen sehr kleine Zeichensätze verwendet werden. Das hat zur Folge, daß das Fenster nicht vergrö- ßert wird, da dies ja nur bei großen Zeichensätzen geschieht. Da- bei können die Gadgets natürlich zum Teil sehr klein auf dem Moni- tor erscheinen und die Bedienung wird umständlicher, von der Un- terscheidung der einzelnen Farben ganz zu schweigen. Jetzt ist es möglich, das Fenster von 100% bis 500% zu skalie- ren. Tragen Sie dazu den reinen Zahlenwert hinter dem ToolType "WINDOWSCALING=" ein. Sollten die Werte unsinnig oder zu groß ge- wählt worden sein, steht beim nächsten Programmstart wieder der Defaultwert "100" dahinter. Bitte beachten Sie hierbei, daß sich die 100% auf die Größe eines bereits an Auflösung und Zeichensatz angepaßten Fensters beziehen. 6.8. Farbänderungen beim Programmstart Während der Entwicklungsphase des Programmes stieß der Autor auf das Problem, daß die Farbpalette des Workbench-Bildschirms bei manchen Anwendern so schlecht gewählt sein kann, insbesondere, wenn die Workbench ein Hintergrundbild geladen hat, daß die Farben der Farbkombinationen nur sehr schwer zu unterscheiden sind. Dem wird ab der Version 2.05 entgegengewirkt indem das Programm beim Starten die Farben des Public Screens verändert. Normalerweise sollen sich Gastprogramme auf einem Pubscreen nicht dermaßen ver- halten. Deshalb stellt SuperCode jedesmal, wenn das Fenster deak- tiviert wird die alte Bildschirmpalette wieder her. Wenn das Fen- ster aktiviert wird, werden wieder die eigenen Farben benutzt. Es wird immer die Farbpalette restauriert, die der Screen vor der erneuten Aktivierung des Fensters hatte. Ein Problem kann hierbei jedoch auftreten, wenn man zwei Super- Code-Fenster, aus welchem Grund auch immer, auf demselben Public Screen geöffnet hat. Wenn man nämlich mit der Maus direkt von ei- nem Fenster in das andere klickt, nimmt das Programm mit dem akti- vierten Fenster an, daß die vom anderen Programm eingestellten Farben die originalen Farben des Screens sind, da daß Programm, dessen Fenster deaktiviert wurde die alten Farben nicht schnell genug wiederherstellen konnte. Wenn jetzt die beiden Programme beendet werden stellt jedes die Screenfarben auf die SuperCode- Farben, da es ja davon ausgeht, daß das die Originalfarben sind. Um die Farbänderung total abzuschalten können sie dem Programm- icon das Tooltype "DONOTCHANGECOLORS" hinzufügen. 7. Kontake, Bug-Reports und mehr Sollten bei Benutzung des Programms irgendwelche Fragen oder Probleme, besonders bei Verwendung von Grafikkarten, auftreten oder das Programm fehlerhaft arbeiten, können Sie sich an folgen- de Adresse wenden: Stefan Bodora Teterower Ring 96 12619 Berlin Der Autor ist jederzeit offen für Änderungsvorschläge oder Anre- gungen. Er sucht ständig Kontakt zu anderen C- und besonders C++ - Programmierern. Sollte jemand Interesse am Sourcecode des Program- mes haben, kann er sich an den Autor wenden. Der Autor dankt Ch. Rickers für das Testen des Programms und für die Unterstützung, die er durch ihn erfahren hat. Viel Spaß mit dem Programm!