********************************************************************** * * * Magic Stones * * ------------ * * * * written by: Emanuel M”cklin * * Zschokkestrasse 7 * * CH-8037 Zrich * * FREDDY@ezrz1.vmsmail.ethz.ch * * * * written with: Pure Pascal * * * ********************************************************************** Magic Stones ist ein Programm, das drei verschiedene Spiele implemen- tiert. Es benutzt ausschliesslich GEM Funktionen und l„uft deshalb auf jedem Atari ST(E)/TT/Falcon usw. Es l„uft als Accessory und als Programm, wurde vollst„ndig in Pascal geschrieben und hat einige programmiertechnische Spezialit„ten, wie die objektorientierte Programmierung oder die Verwaltung beliebig vieler Fenster. Nach Programmstart erscheint ein Men, in dem Sie die einzelnen Funk- tionen ausw„hlen k”nnen (per Maus oder mittels des Tastaturkrzels). Alle Menpunkte fhren dazu, dass ein neues Fenster ge”ffnet wird, wobei, da die Fenster wie schon erw„hnt in einer Liste verwaltet wer- den, beliebig viele Fenster ge”ffnet werden k”nnen, falls dies das Betriebsystem zul„sst. D.h. Sie k”nnen beliebig viele Tetris- oder Highscorefenster ”ffen. Jedes Fenster kann mittels Control W, eine Dialogbox zus„tzlich mit UNDO geschlossen werden, mittels Control U k”nnen Sie das n„chste Fenster toppen, Control Q schliesst alle Fenster und beendet das Programm. Der Highscore wird automatisch abgespeichert, wenn das Hauptdialog- fenster geschlossen wird, d.h. beim Programm bei Programmende, beim Accessory beim Schliessen des Fensters. Jetzt noch einige Erl„uterungen zu den drei Spielen, der Rest sollte selbsterkl„rend sein: 1. TETRIS. Zu diesem Spiel brauch ich wohl keine grossen Worte mehr zu verlieren. Es geht darum, die herabfallenden Steine, von denen es sieben ver- schiedene Arten gibt, so zu plazieren, dass eine geschlossene Zeile entsteht, welche dann entfernt wird, was wiederum dazu beitr„gt, dass Sie mehr Steine platzieren k”nnen, da dann wieder mehr Platz vorhanden ist, was dazufhrt, dass Sie mehr Punkte machen k”nnen. Alles klar? Ein Stein kann nach links (Zahlenblock 4) und rechts (Zahlenblock 6) verschoben, rotiert (Zahlenblock 5) und fallengelassen werden (Zahlen- block 0). Die gleichen Funktionen sind auch mittels des Cursorblocks und der Spacetaste erreichbar. 2. BITRIS Dieses Spiels ist „hnlich wie TETRIS, nur dass hier zwei Spieler in einem doppelt so grossen Feld und mit zwei Steinen spielen. Sie spielen nicht gegeneinander, sondern miteinander. Der zweite Stein kann mittels A/S/D oder F/G/H oder J/K/L plus Spacetaste gesteuert werden (ich benutze hier Scancodes, da die Position der Tasten entscheidend ist, nicht was draufsteht). Meines Wissens gibt es dieses Spiel noch nicht in der Variante, mir sind nur Versionen bekannt, bei denen gegeneinander gespielt wird. Tip: man kann das ganze auch alleine spielen... 3. COLUMNS Wieder fallen Steine herunter, die aber diesmal immer die gleiche Form haben. Sie bestehen aus drei Elementen, die ein bestimmtes Muster haben. Ziel des Spiels ist es, drei gleiche Muster entweder in der Horizontalen, der Vertikalen oder der Diagonalen zu erhalten. Ist dies erreicht, werden die entsprechenden Steine gel”scht und Sie haben wieder Platz fr neue Steine. Sich berschneidene Dreierreihen (z.B. in der Diagonalen und der Horizontalen) werden ebenfalls erkannt und gel”scht. Wenn durch das L”schen neue Dreierreihen entstehen, werden diese ebenfalls gel”scht usw. Natrlich beschr„nkt sich das ganze nicht nur auf Dreierreihen, auch mehr Steine in einer Reihe werden gel”scht. Obwohl nicht ganz einfach zu spielen, ziehe ich ein COLUMNS dem Vorl„ufer TETRIS noch allemal vor, denn hier z„hlt nicht nur schnelle Reaktion, sondern auch K”pfchen. Žnderungen V1.01: - Fenster k”nnen nun auch mittels Control U geschlossen werden. - Control Q schliesst jetzt alle Fenster und nicht nur das oberste. - Auch modale Dialoge k”nnen jetzt ber Control Q/U verlassen werden. - Sie k”nnen den Spielverlauf nun nicht mehr durch dauerndes Drcken einer Taste verz”gern. - Das Programm hatte noch einige Probleme mit nicht modalen Dialogen. - Sowohl Columns als auch Bitris waren noch fehlerhaft, was das Handling der Steine anging. - Die Highscorefenster printen den zuletzt eingetragenen Highscore jetzt fett. So sehen Sie sofort, welches Spiel Sie zuletzt gespielt haben. - Die Koordinaten fr vro_cpyfm waren nicht berall korrekt. Žnderungen V1.02: - Wenn das Hauptmen mit Control U geschlossen wird, werden alle anderen Fenster ebenfalls geschlossen. - Columns hat nun 7 verschiedene Steine (vorher 5). Dies war n”tig, weil zu viele Reihen durch Zufall entstanden. - VIELE Bugs wurden eliminiert. Žnderungen V1.03: - Das Highscorefile (M_STONES.INF) wird nun nicht mehr als ASCII-Datei gespeichert. Alte Formate werden aber erkannt, die Konvertierung geschieht automatisch, so dass Sie vermutlich nie was bemerkt h„tten, wenn hier nicht dieser Hinweis stehen wrde. - Der Redraw beim Fullen von Fenstern funktionierte nicht korrekt. Ebenso gabs Probleme beim Fullen der Highscorefenster. Žnderungen V1.04: - Control U und Control W haben vertauschte Funktionen (gem„ss Atari Guidelines). - Der Randomize Befehl von Pure Pascal scheint nicht so zu funktion- ieren, wie er sollte, so dass immer wieder die gleichen Zufallsrei- hen entstanden. Ohne Randomize funktioniert die ganze Sache aber noch schlechter, so dass ich RandSeed (Anfangswert) jetzt selber setze. - Bitris hatte immer noch ein paar Fehler, was mitunter zu "Steinmll" fhren konnte. - Bis anhin wurde bei Spielende das Fenster geschlossen, bevor Sie aufgefordert wurden, Ihren Namen einzugeben. Jetzt werden beide Fenster immer zusammen geschlossen. - Einige Probleme mit den Slidern sind behoben. Wenn Sie sich fr den Sourcecode interessieren, schicken Sie mir eine formatierte Diskette oder eine E-Mail. Sie erhalten dann die neuste Version auf gleichem Weg zurck. Fehlerreports oder Anregungen sind natrlich ebenfalls willkommen.