Thanks to Julio Marchi for this space in MSX All
 

MSX Minesweeper

 

Portuguese

  1. Introduction
  Minesweeper is a famous strategy game. The goal of the game is to open all free fields, avoinding the bombs.
  This game brings the binaries, sources and a development manual in portuguese.

Minimum requirements:

- MSX 2 or greater;
- Clock chip;
- MSX-DOS 1.

Development:
100 %

Task list:
- Avoid mines number and clock display flicker; - Ok
- Open the 8 neighbors, when some number is clicked; - Ok
- Assembly routine to control time; -Ok
- Fix bomb random sorting; - Ok
- Create winners ranking; - Ok
- Save this rank on disk. - Ok


  2. How to play
- Choose game type: easy (8x8 with 10 bombs) ou hard (16x16 with 40 bombs);
- Arrows move the cursor;
- Esc quits the game;
- Press ENTER when you win the game;
- Z detonate the space under the cursor;
- X flags the space under the cursor;
- C when clicked on a number, open its 8 neighbors, only if surround it the corresponding number of flags were placed.


  3. Download
  mines_src_11.zip - Sources.
  mines_11.zip - Binaries.
  map.pas - Code to create the game map.
  flood.pas - Example of flood-fill.
  start.asm - How to read MSX 2 clock in Assembly.


  4. Development tutorial
  The game development tutorial (Portuguese) was created in PDF format, containing the following topics:

  1. How to use MSX Pad
  2. The game Minesweeper
  3. Creating menu bars
  4. Creating the mines map
  5. Drawing the objects
  6. Assembling the "puzzle"
  7. The flood-fill algorithm
  8. The game control
  9. Calculating the time
  10. The ranking
  11. The random function bug
  Download:
mandev11.pdf - Development manual version 1.1 (Portuguese) - May 2018.


  References and Acknowledgements
Hans page: http://www.hansotten.com/msxpascal.html
Book on Turbo Pascal: http://oldcomputers.dyndns.org/public/pub/rechner/epson/~fjkraan/comp/tp30/doc/

  Thanks to SLotman for MSX Pad, for the use of constants for maps and for the time.inc.


Marcelo Teixeira Silveira
Systems and Computing Engineer - UERJ
Computing Engeneer Master (M.Sc.) - UERJ

MarMSX 1999-2017