home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 210.MJSOLVER.DOC < prev    next >
Text File  |  1990-08-21  |  14KB  |  278 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                                 MJSOLVER v1.1
  7.                       Copyright (C) 1990 by Ken McDonald
  8.  
  9.  
  10.  
  11.         --------------------- What Is MJSOLVER? ----------------------
  12.  
  13.            MJSolver is designed for use with Mah Jongg 3.3 (C) by Nels
  14.         Anderson.  It's  major  function is to rapidly test any of the
  15.         65536 Mah Jongg boards for the best possible score.
  16.  
  17.            MJSOLV11 is hereby released as shareware. If you enjoy this
  18.         product and decide to keep using it, please send the suggested
  19.         registration  price of $5.00  (in U.S. funds, please) to me at
  20.         the address found at the end of this document.
  21.  
  22.            You may freely distribute MJSOLV11 (and are even encouraged
  23.         to do so!) as long as the  following files are included intact
  24.         and in unedited form within the archived package:
  25.  
  26.              MJSOLVER.EXE - the main MJSolver program
  27.              AUTOSOLV.EXE - calls Mah Jongg for auto-play
  28.              MJSOLVER.DOC - this document
  29.  
  30.            The archiving method may  be changed as  necessary, however
  31.         no other  alterations, additions or  deletions are authorized.
  32.         While MJSOLV11 is meant to be used with  Mah Jongg 3.3 (and is
  33.         quite dependent upon it), it may not be bundled with  this, or
  34.         any other  software package, without the express permission of
  35.         the authors.
  36.  
  37.            This software is released  in as is condition.  Although it
  38.         has been tested on several different hardware  configurations,
  39.         there is simply no way  to guarantee it's  performance or com-
  40.         patibility on every possible  setup. The author will therefore
  41.         accept  no responsibility nor liability for any damage arising
  42.         from it's  use or  distribution  and  does hereby disclaim any
  43.         warranties, either implied or expressed.
  44.  
  45.  
  46.  
  47.  
  48.         ----------------------- What It Does: ------------------------
  49.  
  50.            How many times have you started a  Mah Jongg game which has
  51.         ended after removing only 20 or 30 tiles?  How about all those
  52.         games that have ended  with only 2 (or 4, or 16) tiles remain-
  53.         ing?   Does  the  "Additional Boards Played:"  section of your
  54.         statistics file far outweigh the "List of Boards Won:"?  Well,
  55.         now  MJSolver  can help you win some  of these boards that you
  56.         might otherwise have given up on!
  57.  
  58.            MJSolver will run as many as  65535 simulated  plays on any
  59.         board input from the user, while presenting a running tally of
  60.         it's progress.  After  running the  simulations, you will have
  61.         the  option of playing the board yourself or, if you'd rather,
  62.         let MJSolver show you the best solution that it came up with.
  63.  
  64.  
  65.  
  66.  
  67.         ----------------------- Using MJSOLVER -----------------------
  68.  
  69.            MJSolver may be run from the DOS prompt or via a batch file
  70.         (more on the .BAT  method later)  on either a floppy- or hard-
  71.         drive based system. In either case, there should be disk space
  72.         available for MJSolver to save a file which contains the moves
  73.         resulting in the  best score achieved during the  simulations,
  74.         as well as it's own statistics file. See the "defaults" infor-
  75.         mation below, and the ---Menu Options--- section for details.
  76.  
  77.            MJSolver  uses information entered at the command line when
  78.         it is first run.  To see the parameters it uses,  from the DOS
  79.         prompt type:
  80.  
  81.              MJSOLVER ? <CR>      (There must be 1 or more spaces
  82.                                    between "MJSOLVER" and "?")
  83.  
  84.         Note:  The symbol "<CR>" is used in this document to signify a
  85.                carriage return.
  86.  
  87.            You  will then  see an  example  of the syntax as well as a
  88.         brief reminder of the type of information MJSolver expects for
  89.         each parameter. No particular order is necessary when entering
  90.         these parameters, nor are they all needed for MJSolver to run.
  91.         If you leave out any  parameters or enter any information that
  92.         MJSolver doesn't understand,  certain defaults will be used as
  93.         explained below.
  94.  
  95.              -bx     Passes the board  number to MJsolver.  Legal
  96.                      values for "x" are any number  between 0 and
  97.                      65535. Default = random number.
  98.  
  99.  
  100.  
  101.  
  102.              -sx     The number of  simulations  you wish to run.
  103.                      Enter any value from 1 to 65535 for "x". De-
  104.                      fault = 1000.
  105.  
  106.              -pax    Tells  MJSolver where  Mah Jongg is located.
  107.                      This might be needed if the Mah  Jongg files
  108.                      are in a  different  drive  and/or directory
  109.                      than where MJSolver was run from.  (MJSolver
  110.                      automatically searchs the current directory,
  111.                      all directories found in your PATH, and then
  112.                      the directory that  MJSolver  itself resides
  113.                      in for MAHJONGG.EXE)
  114.  
  115.              -px     This is used to slow down the (A)uto play of
  116.                      the board tested.  Values for "x" may be any
  117.                      number between  0 and 5000. Default = 10 ms.
  118.                      (Example: "-p2000" = 2 second delay.)
  119.  
  120.              -q      While running the simulations, MJSolver will
  121.                      beep to indicate that it has found a winning
  122.                      sequence of moves.  Using the "-q" parameter
  123.                      will suppress this beep, telling MJSolver to
  124.                      run in "quiet" mode. Default = beep is "ON".
  125.  
  126.              <mjs>   Any parameters you wish to pass to Mah Jongg
  127.                      should  also be included, if the board is to
  128.                      be played following the simulations. In gen-
  129.                      eral, any options you would  normally use to
  130.                      run  Mah Jongg  should also be entered here.
  131.                      (Example:  "-e -uwb" uses EGA color graphics
  132.                      and selects the Warner Bros. tile set.)  The
  133.                      normal  defaults for  Mah Jongg will be used
  134.                      if nothing is otherwise specified.
  135.  
  136.            As mentioned  earlier,  MJSolver saves game-play statistics
  137.         to a seperate file,  called "AUTOSTAT" by default. The purpose
  138.         here is to keep from  "padding" your own statistics file  with
  139.         those generated during testing and any subsequent play. If you
  140.         wish, you may override this by specifying the filename of your
  141.         existing statistics file. (e.g. "-f\mahstats")
  142.  
  143.            Valid command lines used to start MJSolver could then range
  144.         from the simple: "MJSOLVER <CR>" to the extreme: "MJSOLVER -b9
  145.         -s2000  -paC:\GAMES\MAHJONGG  -q  -fC:\GAMES\MAHJONGG\MAHSTATS
  146.         -p5 -t20 -e -uwb <CR>"!  The first example  instructs MJSolver
  147.         to run 1000  simulations on a randomly  selected  board,  beep
  148.         upon each win, save statistics  to AUTOSTATS, use a 10ms delay
  149.         for auto-play,  and use  all default  Mah Jongg  options.  The
  150.         second will run 2000 simulations on board number 9,  change to
  151.         C:\GAMES\MAHJONGG (if the board will be later played), silence
  152.         the beeps,  save statistics to C:\GAMES\MAHJONGG\MAHSTATS, use
  153.         a 5ms (auto-play) delay, time (manual) play to 20 minutes, and
  154.         run in EGA color graphics mode with the Warner Bros. tile set!
  155.  
  156.  
  157.  
  158.  
  159.         --------------------- Running From a .BAT --------------------
  160.  
  161.            As you can see from the preceding example, the command line
  162.         could get somewhat long and complex. A better method may be to
  163.         make a batch file similiar to the following MJS.BAT:
  164.  
  165.         @echo off             (remove "@" if using DOS 3.2 or earlier)
  166.         cd \games\mjsolver       (assumes MJSOLV11 files are here....)
  167.         mjsolver -b%1 -s2000 -pac:\games\mahjongg -q    │PUT ALL THIS│
  168.          -fc:\games\mahjongg\mahstats -p5 -t20 -e -u%2  │ON ONE LINE!│
  169.  
  170.            Running MJS.BAT by typing  "MJS 9 WB <CR>"  will then cause
  171.         MJSolver to use the same setup as in the  2nd example from the
  172.         previous section!
  173.  
  174.  
  175.  
  176.  
  177.         -------------------- The MJSolver Display --------------------
  178.  
  179.            Using whichever method you prefer, once MJSolver is running
  180.         you will be  presented with a "working" screen  indicating the
  181.         board number currently being tested,  the number of games com-
  182.         pleted,  the current test score,  the average score, the "best
  183.         case" and  "worst case"  results, and the number of wins found
  184.         so far for this board. On the message bar at the bottom of the
  185.         screen you'll see "Analyzing xxxx Simulations", indicating how
  186.         many times  MJSolver will  test the selected board, and "Press
  187.         "Q" to Quit". If a solution has been found, or if you just de-
  188.         cide not to let MJSolver finish the set number of simulations,
  189.         you may halt the program at any time by pressing this key. The
  190.         process may then be resumed by striking <CR>.
  191.  
  192.            It should probably be pointed out here that the method used
  193.         during testing is based on random selection of tile pairs with
  194.         equal weight given to all legal moves.  Because of this random
  195.         nature, a winning combination of moves may not be found during
  196.         the first set of simulations run. As with all such random pro-
  197.         cesses,  the results will  be more statistically correct for a
  198.         large number of tests and may not reflect the results you will
  199.         achieve using your own methods.  Don't be too surprised if you
  200.         beat a "hard" board on your first attempt, or if an "easy" one
  201.         seems impossible!  This is the reason for AUTOSOLV: to let you
  202.         watch the board being played using the sequence of moves found
  203.         by MJSolver. This also leads into the next section....
  204.  
  205.  
  206.  
  207.  
  208.         ------------------------ Menu Options ------------------------
  209.  
  210.            Once finished with the simulations, the message bar will be
  211.         replaced offering the options listed below. Entering the high-
  212.         lighted letter selects that option.
  213.  
  214.              Next -  Allows you to run simulations again. Hitting
  215.                      "N" displays the next  board number. You may
  216.                      then hit  <CR> to select this board or <ESC>
  217.                      to clear the number.  Hit <ESC> once more to
  218.                      cancel this option or type in the  number of
  219.                      your own choice followed by <CR> to run.
  220.  
  221.              Play -  This is the manual play option. Mah Jongg is
  222.                      then loaded and run  using  the play options
  223.                      specified on the MJSolver command line.
  224.  
  225.              Auto -  Selecting this option will cause MJSolver to
  226.                      save  the best-case moves to disk (using the
  227.                      default  filename of MAHMOVES.DAT). AUTOSOLV
  228.                      then calls Mah Jongg, and the board is play-
  229.                      ed using MAHMOVES.DAT as input. If the board
  230.                      was found to be winnable, the last two tiles
  231.                      will not be removed by AUTOSOLV. This allows
  232.                      you to replace  tiles and manually play from
  233.                      any point you may choose. Note: MAHMOVES.DAT
  234.                      will be overwritten as new data is saved.
  235.  
  236.              Save -  Allows you to save  the moves information to
  237.                      disk under a unique filename. The default is
  238.                      in the  form "bd_xxxxx.dat" where xxxxx is a
  239.                      five digit  representation of the board num-
  240.                      ber. Hit <ESC> to clear the default filename
  241.                      and then type in your own. Hitting <CR> uses
  242.                      the name supplied, while a second <ESC> can-
  243.                      cels the option.
  244.  
  245.              Exit -  Quits MJSolver and  exits to DOS. (All other
  246.                      selections will return  you to the "options"
  247.                      screen upon completion.)
  248.  
  249.  
  250.  
  251.  
  252.         ----------------------- Using AUTOSOLV -----------------------
  253.  
  254.            Although AUTOSOLV is primarily  designed to be run from the
  255.         options  menu of MJSolver, it may also be run from the command
  256.         line providing a  way to later  use any saved data files.  The
  257.         syntax is the same as for  MJSolver and uses the same  "-pax",
  258.         "-px"  and "<mjs>"  parameters.   Enter the name of any stored
  259.         moves file using "-nf" where "f" represents the filename.  You
  260.         must provide a filename for  AUTOSOLV although it will default
  261.         to MAHMOVES.DAT if the specified file cannot be found.
  262.  
  263.  
  264.  
  265.  
  266.         ------------------- Registering MJSolver ---------------------
  267.  
  268.            I certainly hope that you will enjoy using these programs &
  269.         that they prove to be interesting and helpful utilities! If so
  270.         the $5.00 requested registration fee would be much appreciated
  271.         and would  provide encouragement to further refine and improve
  272.         this product. Please  include any  comments and/or suggestions
  273.         and mail to:
  274.  
  275.                           Ken McDonald
  276.                           PO Box 654
  277.                           Walled Lake, MI  48390-0654
  278.