M M I N N EEEE SSS W W EEEE EEEE PPP EEEE RRR - ¤¤¤¤¤ MM MM I NN N E S W W E E P P E R R - ¤¤ ¤¤ M M M I N NN EEE SS W W W EE EE PPP EE RRR - ¤¤¤¤¤ M M I N N E S W W W E E P E R R - ¤¤ M M I N N EEEE SSS W W EEEE EEEE P EEEE R R - ¤¤ MinesweeperPASCAL 1.8 (2.8.1995) - VORWORT - Minesweeper (engl. Minensucher) ist ein Spiel, daß serienmäßig bei Windows 3.1 (IBM-Kompatible) mitgeliefert wird, mich aber so ge- fesselt hat, daß ich es gleich auf meinem Amiga programmieren mußte. Nach einem Minimum an Vorbereitungszeit fing ich gleich an, imple- mentierte ein paar zusätzliche Funktionen und ... spielte !!! Da ich den anderen Amigabesitzern dieses Programm bestimmt nicht vorenthalten wollte, entschloß ich mich, dieses meiner Meinung nach ganz gut gelungene Programm der breiten Öffentlichkeit über eine weitverbreitete PublicDomain-Serie zugänglich zu machen. Nach einigen weiteren Erweiterungen wie z.B. der Möglichkeit, MED- Stücke abspielen zu lassen, machte ich mich daran, diese hoffentlich lesbare Anleitung zu schreiben. Das "PASCAL" im Namen steht für die verwendete Sprache und habe ich erst später hinzugefügt, genauer nach der Minesweeper-Schwemme. Der Einfachheit wegen wird das Programm im Weiteren nur Minesweeper genannt. Ich hoffe, daß Ihnen das Ergebnis meiner Mühen ein bißchen gefällt und Sie genauso fesselt wie mich, Ihr Axel Dörfler - COPYRIGHT - Das Programm ist frei kopierbar und darf auf PD-Serien wie FredFish und in MailBoxen verbreitet werden, solange die folgenden Dateien enthalten sind: MinesweeperPASCAL - Hauptprogramm MinesweeperPASCAL.info - Piktogramm für`s Hauptprogramm Minesdoc.deutsch Minesdoc.english - Englische & deutsche Dokumentation Die Datei Mines.prefs muß nicht dabei sein. Die Rechte am Programm bleiben aber auf jeden Fall bei mir. Auch sollte eine Diskette mit MinesweeperPASCAL nicht mehr als 5,- DM oder die entsprechende Summe in anderen Währungen kosten. - DIE BEDIENUNG - Nach dem Starten des Programmes hinterläßt dieses ein Fenster mit recht vielen Rechtecken und einer Anzeigetafel am oberen Ende des Fensters: -------------------------------------------- | 10| | ? | | 1| 0| < Zeitanzeige -------------------------------------------- ^ ^ ^ Anzahl der noch Neustart Anzahl der hinter- verbleibenden einander erfolgreich Bomben abgeschlossener Spiele Das klingt reichlich logisch, und deswegen erspar ich mir weitere (überflüssige) Bemerkungen dazu und wende mich ganz den beiden Menüs zu: Projekt Einstellungen Neu Anfänger Die drei Info... Fortgeschrittener } verschiedenen Zeige Rekorde Profi Level und einer ~~~~~~~~~~~~~ Selbstdefiniert für eigene Ein- Ende ~~~~~~~~~~~~~~~~~ stellungen ^ Musik <-- Musik ein- oder ausschalten Zu diesem Menü bedarf Andere Musik <-- Möglichkeit einer Wahl es ja wohl keiner weiteren eines anderen Med-Modules Erläuterungen (hoffe ich!) Sprache <-- Deutsch oder Englisch (nur OS2.0) und noch mal genauer : -- DIE LEVELS - Die verschiedenen wählbaren Schwierigkeitsstufen sind Anfänger : Ein 8x8 Rechtecke großes Spielfeld mit insgesamt 10 von Ihnen aufzufindenen Bomben. Fortgeschrittener : Ein etwas schwieriger zu meisterndes 16x16 Spielfeld mit ganzen 40 Bomben. Profi : Trägt seinen Namen zu Recht, ein 30x16 Felder großes Spielfeld mit 99(!) Bomben (wirklich schwierig). Selbstdefiniert : Dieser Modus dient dazu, sich eigene Level zu erschaffen um sich somit schwierigeren oder auch leichteren Leveln aussetzen zu können. Die Werte werden in einem einfachen Requester eingegeben. -- DIE SPRACHEN - An verschiedenen Sprachen sind bisher zwei integriert (langt auch), und zwar DEUTSCH & ENGLISCH. Wenn Minesweeper unter Kickstart 2.0 läuft gibt es den Menüpunkt "Sprache", wo Sie die aktuelle Sprache einstellen können. Ab Workbench 2.1 verschwindet das Menü und stattdessen werden die Ein- stellungen in den Locale-Prefs verwendet, um die aktuelle Sprache zu wählen. -- MUSIK - Das Abspielen funktioniert einwandfrei, solange sich die MEDPlayer.library von T. Kinnunen im LIBS: Verzeichnis befindet. Falls jemand den Quellcode von mir "bestellt", bekommt er deswegen auch gleich die nötigen selbst(um)geschriebenen Includes mitgeliefert. Die MEDPlayer.library befindet sich z.B auf Fish-Disk 483, und ist frei kopierbar, unter Umständen befindet sie sich auch auf dieser Diskette. - DAS SPIEL - Das Spielen an sich ist eigentlich schrecklich einfach, nur dabei eine hohe Geschwindigkeit zu entwickeln ist nicht nur eine Sache der Übung sondern auch und vor allem eine Sache des schnellen logischen Denkens. Am Anfang wählt man sich irgendeines der Felder, z.B. das in der linken- oberen Ecke. Nehmen wir einmal an, es würde eine '1' erscheinen. Das würde bedeuten, daß die direkt anliegenden Felder genau eine Bombe be- inhalten: ------------------- Bei einem dieser Fragezeichen liegt also | 1 | ? | | | auf jeden Fall eine Bombe! ------------------- Klickt man jetzt z.B. auf gut gelingen | ? | ? | | | die rechts und unterhalb gelegenen Felder ------------------ an und rein zufällig zeigen beide einsen, | | | | | ist nur noch ein logisches Feld möglich: ------------------ | | ---------------- | 1 | 1 | ? | Das mit dem Ausrufezeichen markierte ---------------- Feld ist das mit der Bombe, da das | 1 | ! | ? | Feld oben-links nur diese eine sehen --------------- kann! Aus diesem Grunde kann man alle | ? | ? | | mit dem Fragezeichen markierten -------------- Felder aufdecken, da dort keine Bomben | | mehr sein können. Bomben kann und sollte man übrigens mit der rechten Maustaste markieren und so vor versehentlichem Drücken bewahren! Klickt man auf ein bereits aufgedecktes oder markiertes Feld, erscheint ein Rahmen um dieses und alle umliegenden Felder um den "Bombenzählprozeß" zu beschleunigen. Klickt man auf eine noch nicht markierte Bombe, so werden alle noch ver- bleibenden Bomben angezeigt und es bleibt einem nichts anderes übrig, als ein neues Spiel anzufangen (was man (ich) auch meistens tut (tue)). - WISSENSWERTES - Da Minesweeper auch mal unter Kickstart 1.3 funktioniert hat werden die Gadgets (noch) nicht mit GadTools erstellt, sondern eigene Routinen ver- wendet. Bei mehr als 4 Farben werden die Gadgets dafür (beim Runterdrücken) recht häßlich! Es sind zwei Arten von Rekorden möglich, einmal geht es nach der Gesch- windigkeit und das andere Mal nach der Anzahl der hintereinander bewältigten Spiele. Beide Arten sind zusätzlich noch durch die drei verschiedenen Level unterteilt. Die Rekorde und auch die sonstigen Einstellungen wie gewählte Sprache, zuletzt angewählter Level,eigene Leveldefinition und die Musikwahl(Pfad & Stück) werden nicht mehr im S:-Verzeichnis, sondern unter 'Mines.prefs' im Startverzeichnis von Minesweeper abgespeichert. Diese Datei muß aber nicht existieren und auch nicht abgespeichert werden, die Rekorde gehen dann natür- lich verloren. Inzwischen wurde die Konfigurationsdatei stark verkürzt (auf vorerst 394 Bytes) und in einem dem IFF ähnlichem Format abgespeichert, das den nächsten Versionen Minesweepers die Möglichkeit gibt, die alte Datei einlesen zu können (und wahrscheinlich auch umgekehrt). Im NTSC-NonInterlace-Modus können seit der Version 1.49 wieder alle Zeilen dargestellt werden, der Fortgeschrittenen- und der Profi-Level sind also wieder so schwer wie in den anderen Auflösungen. Da Sie sich sicher dafür interessieren, hier nun meine ganz persönlichen Rekorde (die dazugehörige 'Mines.prefs'-Datei liegt bei): Anfänger 4 sec, 13 Spiele in Folge (Mit Glück!!) Fortgeschrittener 35 sec, 7 "" in "" Profi 121 sec, 3 "" in "" Die Probleme die Minesweeper beim Arbeiten mit anderen (größeren) Fonts hatte, sind bereits seit längerer Zeit beseitigt. Es läuft nun ab Kickstart 2.0 und höher, funktioniert jedoch nicht mehr unter Kickstart 1.3 und niedriger, was es bis zum Erscheinen der Version 1.48 tat. · Das Layout des Spielfenster wurde in der Version 1.8 stark überarbeitet. Der Source wurde etwas umorganisiert. · In der Version 1.61 kommt Minesweeper nun auch mit übergroßen Screens zurecht, die Felder werden nicht mehr mit BOOPSI erstellt, dafür ist das Zeichnen dieser um ein Vielfaches schneller, die Rekordanzeige sieht nun etwas schöner aus, wie auch einige andere Layout-Dinge verschönert wurden, neues Programmicon. · Seit Version 1.51 werden die Felder mittels BOOPSI erstellt (aus diesem Grunde sehen die Felder unter OS2.0 anders aus als unter OS3.0!) und die Menus erscheinen auch unter OS3.0 in den richtigen Farben. · Ab Version 1.49 paßt Minesweeper die Größe der Felder der Auflösung an (die Felder sind bei hohen Auflösungen (oder Interlace) nahezu rechteckig). · Seit Version 1.48 wird die Stoppuhr jede Sekunde aufgefrischt, und nicht wie bisher, bei jeder Aktion; ich habe den Fehler gefunden, er lag einfach darin, daß ich die Timer-Message mit ReplyMsg() zurückgeschickt hatte! · Die in der Version 1.39 von Minesweeper aufgetretenen Probleme mit dem Interlace- Modus (falsches Zentrieren, falsche Größenberechnung im NTSC-Modus) sind behoben. Der Source-Code wurde seltsamerweise mit jeder neuen Version kürzer (von 55551 Bytes in der Version 1.46 auf 50176 Bytes in der Version 1.51)!! Alle mir bekannten Bugs habe ich inzwischen erfolgreich beseitigt, falls Sie trotzdem irgendwelche finden, Verbesserungsvorschläge oder irgendwelche Probleme mit Minesweeper haben, schreiben Sie (mit frankiertem & adressiertem Rückumschlag) bitte an die untenstehende Adresse. !! WICHTIG: Falls Minesweeper den Füllprozeß nicht zu ende führt, liegt das an einem zu niedrig angesetzten Stack, da die Füllroutine rekursiv füllt. Dieses Problem tritt eigentlich nur mit einem selbstdefiniertem Level auf, in dem große Flächen zu füllen und wenig Bomben vorhanden sind. Bei einem Level der Größe 31x20 mit 79 Bomben langt ein Stack von 15000 Bytes völlig aus, bei 31x20 mit 10 Bomben kann selbst ein Stack von 30000 zu wenig sein. 35000 Bytes sollten in jedem Fall genug sein. - SHAREWARE-GEBÜHR - Falls Ihnen das Programm so gut gefällt, das Sie es ständig benutzen, sollten Sie dem Autor (mir) 10,- DM zukommen zu lassen. Dafür freut sich dieser nicht nur, sondern schickt Ihnen neben der neuesten Version des Programmes auch dessen Quell- code in KickPascal mit, der aus folgenden Komponenten besteht : Minesweeper.p - Hauptprogramm images.asm - Die Grafiken wie Bomben und ähnliches... Gadgets.h - Vereinfachung der Gadgetbehandlung Menu.h - Funktionen zur Umrechnung des 'Selection'-Wertes MEDPlayer.lib - Schnittstelle zur MEDPlayer.library von T. Kinnunen MEDPlayer.h - Strukturdefinitionen für MED-Module (MMD0,...) Auch die MEDPlayer.library wird neben einigen Musikmodulen auf dieser Diskette zu finden sein. Der Quellcode ist zwar nicht dokumentiert, aber gut gegliedert und hoffentlich auch gut programmiert (Ich habe mir jedenfalls alle Mühe gegeben). Falls Sie also an dem Quellcode des Programmes interessiert sind, können Sie die zehn Mark an folgende Adresse schicken: Axel Dörfler Heerstraße 53 W-49492 Westerkappeln (Natürlich in Deutschland) Alle mir bekannten Bugs habe ich entfernt! Sie können mir ganz nach Belieben auch ein paar Zeilen schreiben, vergessen Sie aber nach Möglichkeit nicht, mir auch ihre Adresse zukommen zu lassen, da ich sonst einige Probleme habe Ihnen eine Antwort oder auch das Programm samt Quellcode zu schicken.