Commit bc169129 authored by rswindell's avatar rswindell
Browse files

Moved to xtrn/minesweeper

Created sysop documentation (.txt file)

If you were a lucky "early adopter" and had rev 1.7 running on your BBS

you probably noticed the following important changes introduced in rev 1.8:
* exec/minesweeper.js was moved to xtrn/minesweeper/minesweeper.js
* text/minesweeper.hlp was moved to xtrn/minesweeper/minesweeper.hlp

* data/minesweeper.json was moved to xtrn/minesweeper/winners.jsonl



If you already had game winners and want to retain them in the list, copy
or rename the data/minesweeper.jsonl to xtrn/minesweeper/winners.jsonl.
If you don't care, the game will run fine and new winners will be added to
the new/correct filename.
parent d76c5ebb
......@@ -7,6 +7,7 @@
//
// Name Synchronet Minesweeper
// Internal Code MSWEEPER
// Start-up Directory ../xtrn/minesweeper
// Command Line ?minesweeper
// Multiple Concurrent Users Yes
......@@ -17,20 +18,22 @@
//
// Name Synchronet Minesweeper Winners
// Internal Code MSWINNER
// Start-up Directory ../xtrn/minesweeper
// Command Line ?minesweeper winners
// Multiple Concurrent Users Yes
// Execute on Event Logon, Only
// Command-line arguments supported:
//
// "winners" - display list of top-X winners and exit
// "nocls" - don't clear the screen upon exit
// <level> - set the initial game difficulty level (1-5, don't prompt)
// "winners [num]" - display list of top-[num] winners and exit
// "nocls" - don't clear the screen upon exit
// <level> - set the initial game difficulty level (1-5, don't prompt)
// ctrl/modopts.ini [minesweeper] options (with default values):
// sub = syncdata
// timelimit = 60
// winners = 20
// difficulty = 0 ; 0 = prompt user, 1-5 to set default difficulty (no prompt)
"use strict";
......@@ -38,8 +41,8 @@ const title = "Synchronet Minesweeper";
const REVISION = "$Revision$".split(' ')[1];
const author = "Digital Man";
const header_height = 4;
const winners_list = system.data_dir + "minesweeper.jsonl";
const help_file = system.text_dir + "minesweeper.hlp";
const winners_list = js.exec_dir + "winners.jsonl";
const help_file = js.exec_dir + "minesweeper.hlp";
const max_difficulty = 5;
const min_mine_density = 0.10;
const mine_density_multiplier = 0.025;
......
Synchronet Minesweeper - Sysop Documentation
============================================
It's the classic game you know and love, written from scratch for Synchronet
BBS in JavaScript (ES5).
by Digital Man, September 2019
Details
-------
The objective was to try to mimic the old Microsoft versions of the game that
I remember playing in the 1990's, but support more difficulty levels (5) and
maximize the number of cells usable in terminals, while keeping the game
playable and easy on the eyes (my daughter, Emma, helped with the color scheme,
as she is *not* colorblind). There's no mouse support; use the keyboard.
Multiple users can be play the game simultaneously, but there is no inter-user
interaction of any kind. The normal Synchronet inter-node paging/listing
controls (Ctrl-P/U) are disabled while running the game.
The game supports ANSI and PETSCII terminals from display widths (columns) of
40 to 132+ and heights (rows) of 24+.
For more details on game play, see winesweeper.hlp (the "Help" text available
while running the game).
Winners
-------
The game winners are stored in an ever-growing line-delimited JSON file
(winners.jsonl). If you ever want to reset the list of winners, you can just
delete that file. The winners are ranked (sorted) first based on difficulty
level (higher levels are harder) and then by elapsed game time (lower times are
better). There are fractional difficulty levels (e.g. "3.3") to compensate for
terminal size limitations (e.g. not all terminals can support a level 5 30x30
game grid). The mine density (percentage of cells occupied by mines, based on
selected difficulty level) is retained however, regardless of calculated/used
game grid size.
If you have a "syncdata" message area setup, your game winners will be
automatically shared to that message base for visibility on other BBSes and
when viewing your game winners, those from other Synchronet BBSes will also
appear in the rankings.
The "top X" value (number of winners) displayed is configurable, but defaults
to 20. It's quite possible to "win" the game but not appear in the winners
list depending on what other players have accomplished and the configured
display threshold.
Requirements
------------
Tested with Synchronet v3.17c (in development). Older versions of Synchronet
(e.g. v3.17b) may work however.
An up-to-date set of exec/load/*.js files (from cvs.synchronet) are needed.
Install
-------
Add to SCFG->External Programs->Online Programs(Doors)->Games->
Available Online Programs...
Name Synchronet Minesweeper
Internal Code MSWEEPER
Start-up Directory ../xtrn/minesweeper
Command Line ?minesweeper
Clean-up Command Line
Execution Cost None
Access Requirements
Execution Requirements
Multiple Concurrent Users Yes
Intercept I/O No
Native Executable No
Use Shell to Execute No
Modify User Data No
Execute on Event No
Pause After Execution No
BBS Drop File Type None
Place Drop File In Node Directory
Since it is a JavaScript module, most of the settings don't apply and should
be left default/disabled/No/None.
Optionally, if you want the top-X winners displayed after exiting game, set:
Clean-up Command Line ?minesweeper winners
If you want the top-x winners displayed during logon, create an additional
program entry:
Name Synchronet Minesweeper Winners
Internal Code MSWINNER
Start-up Directory ../xtrn/minesweeper
Command Line ?minesweeper winners
...
Execute on Event Logon, Only
Configure
---------
Command-line arguments supported:
"winners [num]" - display list of top-[num] winners and exit
"nocls" - don't clear the screen upon exit
<level> - set the initial game difficulty level (1-5, don't prompt)
The ctrl/modopts.ini may contain a [minesweeper] section. The following
options are supported (with default values):
sub = syncdata
timelimit = 60
winners = 20
difficulty = 0
If you do not want the user to be prompted to select a difficulty level when
running the game, set the difficulty level in the modopts.ini file or on the
command-line. The user can still change/choose a difficulty level when starting
a new game.
Upgrade
-------
If you were a lucky "early adopter" and had rev 1.7 running on your BBS,
you probably noticed the following important changes introduced in rev 1.8:
* exec/minesweeper.js was moved to xtrn/minesweeper/minesweeper.js
* text/minesweeper.hlp was moved to xtrn/minesweeper/minesweeper.hlp
* data/minesweeper.json was moved to xtrn/minesweeper/winners.jsonl
If you already had game winners and want to retain them in the list, copy or
rename the data/minesweeper.jsonl to xtrn/minesweeper/winners.jsonl. If you
don't care, the game will run fine and new winners will be added to the
new/correct filename.
$Id$
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment