MM MM II NN NN EEEEEEE SSSSSS WW WW EEEEEEE EEEEEEE PPPPPP MMM MMM II NNN NN EE SS WW WW EE EE PP PP MMMM MMMM II NNNN NN EE SS WW WW EE EE PP PP MM MM MM MM II NN NN NN EEEEE SSSSS WW WWW WW EEEEE EEEEE PPPPPP MM MMM MM II NN NNNN EE SS WWWW WWWW EE EE PP MM MM II NN NNN EE SS WWW WWW EE EE PP MM MM II NN NN EEEEEEE SSSSSS WW WW EEEEEEE EEEEEEE PP Version 2.131 / 10.05.92 ---------------------------------------------------------------------------- (C) 02/1992 Uwe Poliak Software Kiesweg 41 WD-7316 K”ngen/Neckar Germany Tel.: ++49 / 7024 / 8 40 70 email: Uwe_Poliak@s2.maus.de poliak@rz.fh-reutlingen.de 0. Advice --------- If some hard- and softwareproducts are mentioned in this documentation, they are the registered trademarks of each manufacturer. 1. Preface ---------- The idea to develop MINESWEEP resulted from playing the WINDOWS-program MINESWEEPER. I don't know such a program running on the ATARI ST, so I tried to write it myself. 2. Short description -------------------- 2.1. General MINESWEEP is a puzzle, or someone might call it a trial of patience. You have to find the hidden mines, which are scattered over the whole playground. You may choose between different levels, which differ in the number of mines or the size of the playground. 2.2. operation modes MINESWEEP can be started as a program or a an accessory. To start the program in accessory-mode, you have to rename the extension from PRG to ACC. To boot MINESWEEP, copy the accessory MINESW_E.ACC, the resource- file MINESW_E.RSC and the configfile MINESWEEP.INF in the rootdirectory of your boot-drive. It is also possible to load the accessory after booting your computer. If you want to do this, use an accessory, which makes this possible, p.e CHAMELEON from Karsten Isakovic in D-1000 Berlin, Wilmersdorfer Str. 82. In this case, it is important, that all files are in the same directory. 3. Idea of the game ------------------- The idea of the game MINESWEEP is relativly simple. You have to find the hidden mines, as already mentioned. Doing this, the program supports the player. If you click on the quadratic fields, there are two possibilities. ** You choose a field, which hides mine - this will end the game or ** you click on a "free" field. In this case, the program shows, how many mines are scattered around the choosen field. Now, you have to interpret the shown number and mark hidden mines with a small flag. If all fields are occupied with a number or a flag, the game or the level ends. If you loose the game, or if you answer the appearing dialogbox with the "No"-Button, this box apperas after each click on the playground. If you click on the "Score"-Button in this box, you are shown the most important values of the last game. 4. How to use ------------- 4.1. General The MINESWEP-playground is displayed in a GEM-window. It is possible to change the size of the playground. The maximum size of the playground depends on the actual screen-resolution. ATTENTION: MINESWEEP runs only on ATARI-computers with a minimum resolution of 640*400 pixels. You are free to use screen- enhancers as OVERSCAN, Pixel-Wonder or others. Using a standard-ST the maximum size of the playground is about 28*15 fields. On a ATARI TT (resultion: TT_High) it is possible to play with a size of about 60*26 fields. If you use BIGSCREEN from Julian Reschke (adress unknown), you might use playgrounds up to 100*50 fields. Below the window-title, which displays the version-number, some infor- mation is given: ** right side: Here, the number of fields is displayed, on which you haven't clickd on yet. ** left side: Here, the actual level is shown. You can start nearly all functions of MINESWEEP with the mouse. Some special functions can be started pressing a key or a combination of keys. The following keys start those functions: ** ESC - quit game ** F1 - Other function (-> 4.2) ** UNDO - Start a new game ** HELP - Show help-screen ** ALT-S - Show actual score ** ALT-P - Pause game 4.2. Other functions This dialog gives access to some other functions of MINESWEEP. The following function can be used: ** Information... - Displays some important informations about the program and the author. ** Help.. - Shows a short help sreen. (can be called using the HELP key) ** New game - Restart a game ** Quit game - quit game ** Score.. - Displays the actual scoring of the running game. (can be called using the keys ALT-S) ** Configuration..- Here you can change the setup of the game (-> 4.3). ** Cancel - back to the playground 4.3. Configuration-Box Here, you can change the setting of the most important game parameters, which are the following: ** Free zeroes - If this button is selected, all fields are shown, which hide the Null-character, this means those fields, which have no mine around itself. Only those fields are opened, which has a direct connection to the clicked-on field. You can compare this with a fill function of any drawing program. Try it. It' s hard to explain this function in german, it's even much more harder to explain it in english. ** Show zeroes - Here, you can select if the Null-character is shown or not. If this button is selected, no null-chara- cter is displayed. An empty field is shown then. ** Sound effects - Clicking on this button, you can switch on or off the sound-effects. Sounds are played, if the bombs are exploding or if you click on a field, on which you have clicked on before. ** Ask bef. quit - Here you can switch on/off the question, which is asked, when quitting the game. This has no effect on the ESC-key. Here, the question is always asked. * Difficulty - Here you can select the difficulty of your game. The "mine number"-field hides a small popupmenu, which opens, when you click on this button. The numbers in the popupmenu show, how many mines are hidden on the playground. If you select the item "User", you can enter the number of mines in the inputfield below. The number of mines is checked, if the entered amount works with the current playground-size. If not, the number is corrected. The maximum number of mines depends on the size of the playground: Playgr.size_X * playgr.size_Y / 3 Another possibility is, to select the button "in- creasing difficulty". If this button is selected, the game has different levels with increasing difficulty. 1st level won -> mines more 2nd level won -> mines more 3rd level won -> playground-size is increased. (2 fields X, 1 field Y) 4th level won -> mines more and so on... You can calculate the value of in the following way: = playgr.size_X * playgr.size_Y / 20 If you deselect this button, the game is continued in the current level. This setting is only activated when you start a new game. ** Place flag - This button also hides a popupmenu, which opens, when you click on this button. Here you can select how to place a flag on the play- ground. The possibilities are ** left mousebutton/right shiftkey ** -"- -"- /left -"- ** -"- -"- /Control-key ** -"- -"- /Alternate-key ** right -"- /no other key ** Size of play.. - Here, you can set up the maximum size of the play- ground. If you choose wrong values, they are cor- rected automatically. This setting is activated, when you start a new game. ** Save - Save the current settings into the configurationfile MINESWEEP.INF. If an error occurs, this is shown in an alertbox. ** Ok - Use the current settings in the next game ** Cancel - The old settings are restored. 4.4. Score-box This box displays the actual scoring of the game. It is divided in three parts. The upper two lines are only active, when playing a game with increasing difficulty. Here, the time and the points up to now are shown. The part in the middle of the box shows the scoring of the current game or level. The lower part gives some values of the actual playground. You can't select anything here. In some situations, some displays are disabled. 4.5. Pause game You can pause the game using the key combination ALT-P. During this, the running game is stopped, this means the timer is stopped. 4.6. The game The idea of the game I described above. The following chapter shows some examples: If you click on a field, the appearing number shows the amount of mines scattered around the clicked-on field. The following drawing shows, what this means: +-----+-----+-----+ | | | | | # | # | # | * you click here | | | | +-----+-----+-----+ | | | | | # | * | # | | | | | # The amount of hidden mines +-----+-----+-----+ in these fields is shown in | | | | the field with the asterisk | # | # | # | '*' | | | | +-----+-----+-----+ If in the clicked-on field appears a "1", one mine is hidden in _one_ of the field with the '#' on it. If a "2" appears, two mines are hidden under the '#'-fields, and so on... Now, it's your job to guess (?) the position of the hidden mines using the hints, which are given in the numbers. Now some examples: Legend: _ = free field, never choosen | = borderline of the playground Example 1: 1 2 3 4 5 In this example, the mine _must_ be under A | ............. field D2. This comes from the "1"s in the B | 0 0 0 0 0 ... fields C3 and E3. The mine can' t be under C | 1 1 1 0 0 ... field D1, because of the "1"s in the fields D | _ _ 1 0 0 ... C3/D3/E3. It is impossible, that there are E | 1 1 1 0 0 ... two hidden mines, because there is no "2" in F | 0 0 0 0 0 ... the field C1/2, E1/2. G | ............. Example 2: 1 2 3 4 5 6 A ............... B _ _ _ _ 1 1 ... Here, the mine is hidden under the field C4. C _ _ _ _ 1 2 ... This is the only possibility for field D5, D _ _ _ 1 1 1 ... to recognize a mine. E 1 1 1 0 0 1 ... F ............... Example 3: 1 2 3 4 5 6 7 In this example, three mines are hidden. The A ................. concerning fields are D3, D5 and E5. The B 0 1 1 1 1 1 1 ... mine on D3 is recoginized from the "1"s on C 0 1 1 2 1 1 0 ... the fields C2/3 and D2 and the "2" in field D 0 1 * _ * 2 1 ... C4. The "2" in field C4 shows, that there E 0 1 _ _ * 2 1 ... must be a mine under the fields D4 or D5. F 0 0 0 1 1 1 2 ... The correct position shows the "1" in field G 1 1 1 2 3 3 1 ... C6. The only possibility for this is D5. H ................. The mine under E5 is recognized from the fields D6, E6, F6, F5 and F4. If you combine those fields, the only possibility is E5. As mentioned above, it's rather difficult to describe those things, but I tried it. Now, I ask you to do the same and try it. The game ends, when all fields are filled, this means, that on each field is a flag or a number. The game also ends, when you click on a field with a mine hidden under it. All mines on the playground will explode and you loose the game. After this you can start a new game or display the score of the last game. 5. Distribution --------------- The MINESWEEP-program is in the Public-Domain. If you want to _sell_ this program, a written permission is required. You may distribute this program in mailbox-networks or give it to your friends. If you are interested in new versions of MINESWEEP, you can send me a e-mail. Another possibility is, to send me a formatted disk, an envelope with your adress on it and five international You _must_not_ change any part of the program, the resource-file and this text. Gramatical corrections are allowed an recommended. You may use a program like LHARC, to pack the MINESWEEP-files in an archive. The files belonging to MINESWEEP including the file lengths are listed in chapter xxx. All files must be included in one archive. 6. Finance ---------- If you like this program, I would be happy, if you send me a postcard from your hometown. There are no fees. 7. Further extensions --------------------- * Improved sounds * Save hiscores to disc If you have an idea of functions, which should be included in MINESWEEP, let me know. I'll think about it, and -maybe- I'll add it to MINESWEEP. If you recognize errors, let me know. I'll try to fix the bugs. 8. About the author ------------------- My name is Uwe Poliak, I'm 26 years old. I finished my studies in July 1991, with an engineer's grade. Now, I work at the computer centre of my university and I'm responsible for the UNIX-machines. The ATARI-ST is my third computer. The first one was a Sinclair ZX81 with the hardly imaginable memory size of 1kB. The second one was a Video-Genie (Down with the custom chips! This computer was the only one, you could repair on your own). I own the ST since 1988 and it works very well, due to the extensions, I added to it. MINESWEEP was programmed using Turbo-C 2.03 from Borland Inc. I used the Mydial-Library from Olaf Meisiek, and the NKCC-Library from Harald Siegmund (great!). 9. Adress --------- My adress: Uwe Poliak Telefon: ++49 - 7024 / 8 40 70 Kiesweg 41 WD-7316 K”ngen/Neckar Email: MAUS-Net : Uwe_Poliak@s2.maus.de Internet : poliak@rz.fh-reutlingen.de 10. Thanx to... --------------- I would like to thank the following persons for their hints: ** Thomas_Fuerhoelter@AC.maus.de ** Thomas_Kroebel@KA.maus.de ** Peter_Hellinger@N.maus.de for the evnt_multi-hints. ** Olaf_Niermann@MS.maus.de ** Olaf_Meisiek@FL.maus.de ** Uwe_Ohse@PB.maus.de ** Konrad-Hinsen@AC2.maus.de for the ACC-redraw-hints. ** Klaus Rein ** Christoph Passmann ** Stefan_Krohmer@S2.maus.de for beta-testing ** Dirk_Steins@MS.maus.de, number display ** Frank_Dickschat@HH2.maus.de, some error-reports ** Stefan_Kupner@MS.maus.de, character-sets. ** Georg (?), who reported a bug in the grid-size routine 11. Included files ------------------ The following files belong to the MINESWEEP-package: MINESW_E.PRG 58039 Bytes the program (runs as ACC or PRG) in english MINESW_E.RSC 24204 Bytes resourcefile MINESWEP.INF 42 Bytes configuration-file MINESW_E.TXT 21800 Bytes this text MINESWEP.TXT 32253 Bytes this text in german Sorry, the german text is longer. But it was hard enough to translate the whole text in english language. All important informations are in- cluded in this text too! All files must be included in the package! 12. History ----------- V 0.70à First Version of MINESWEEP without any functions V 0.80à Help-function, different levels with given number of mines V 0.90à Right mousebutton for placing flags. Function "Free zeroes" V 0.91à User-defined number of mines possible. V 1.00ž First beta-test-version Accessory-mode, moveable window. First try of a documentation. V 1.10ž Window-redraw bugs fixed. Improved graphics. V 1.11ž "Place-flage" function: It is now possible to place a flag using the left mousebutton and different shiftkeys. V 1.12ž Some improvements and bugfixes. Using shel_find() to find INF-file. Window-redraw-speed-up. V 1.13ž Improved infobox. V 1.131 Error in setup-dialog. Correction of sound-datas ** First public version ** V 1.2à Two alternative character sets added. V 1.3à "Show zero"-function added. V 1.31à Now, MINESWEEP shouldn't write in other windows (ACC-mode). All output routines are clamped with `BEG_UPDATE` and `END_UPDATE`- commands. V 2.0à User defined size of playground. V 2.01à Maximum size of playground depends on screen resolution. (max.: 1280*1024). V 2.02à Check, if amount of mines fits in the playground. V 2.03à Stacksize set to 64kB. If you use big playgrounds, the stack size of older versions won't be enough for the recursions of the "Free zeroes"-function. Scoring implemented. V 2.10ž Increasing difficulty implemented. V 2.11ž Minor bugfixes V 2.12ž usage of MyDials and NKCC. V 2.13ž "Pause-Game"-function and minor bugfixes V 2.131 Some bugs in Score-box fixed. First version in english. (Corrections welcome !!!) ** Second public version ** V 2.132 A silly bug was fixed ( i've forgotten to delete two ';'s ) (thanx to Georg, who reported this bug) 13. Known Bugs -------------- In this chapter, some known bugs are listed. If you know, how to fix these bugs, it would be great, if you report me, how to do this. * There are some bugs, when starting MINESWEEP as an accessory. The redraw of the screen objects (buttons, numbers, mines) won't work correctly. This appears only, when MINESWEEP is started for the first time. Close the ACC-window and select the MINESWEEP-entry again. Now it will work. * Repeated output of the "Bell"-character (ASC 7). I think, the problem is located somewhere in the "DoSound"-Routine (Turbo-C). In this case, you might press any character (except EXC!), to stop the ringing. Now I hope, everyone has understood the major features of the program. I hope, you enjoy it. Uwe Poliak, 05/21/92