source code of /projects/anonymine/index.html.src

Last modified
Lines 408

Parent directory Download CGIread sitemap Main page

Quick links: about content dl-unix dl-windows download news platforms release-notes screenshots title top

  1. __HTML5__
  2.         <title>Anonymine - guess free minesweeper</title>
  3.         <meta name="description" content="Anonymine is a text based
  4. minesweeper that can be won without any guessing, and has a few other
  5. features, including hexagonal and von Neumann fields."/>
  6.         <style>
  7.             #screenshots p
  8.             {
  9.                 margin-bottom: 2em;
  10.             }
  11.             #platforms dt
  12.             {
  13.                 font-size: 105%;
  14.             }
  15.             #platforms dd
  16.             {
  17.                 font-size: 95%;
  18.                 margin-bottom: 0.167em;
  19.             }
  20.             .dl-
  21.             {
  22.                 padding-left: .5em;
  23.             }
  24.             .download
  25.             {
  26.                 vertical-align: middle;
  27.                 font-size: 110%;
  28.             }
  29.             .download::before
  30.             {
  31.                 vertical-align: middle;
  32.                 font-size: 250%;
  33.                 content: '⭳';
  34.                 padding-right: .25em;
  35.             }
  36.         </style>
  37.     </head>
  38.     <body>
  39.         __NAVIGATION__
  40.         <main><div id="content">
  41.             <h1 id="title">Anonymine - guess free minesweeper</h1>
  42.             <p class="notprint" style="max-width: 100%;">
  43.             <!-- If I make these images link back, it will cause
  44.             accessiblity issues on mobile devices. -->
  45.             <img src="imgs4/banner1.png" alt="" width="420" height="280"/>
  46.             <img src="imgs4/banner2.png" alt="" width="420" height="280"/>
  47.             </p>
  48.             <div id="top">
  49.                 <p>Latest version: 0.6.35 released on 2024-01-31
  50.                    - <a href="#news">what's new</a></p>
  51.                 <ul>
  52.                     <li><a href="#about">About</a></li>
  53.                     <li>
  54.                         <a href="#download">Download</a>
  55.                         <small>
  56.                             <span class="dl-">(<a href="#dl-unix">Linux &amp; Unix,</a></span>
  57.                             <a href="#dl-unix" class="dl-">macOS,</a>
  58.                             <a href="#dl-windows" class="dl-">Windows,</a>
  59.                             <a href="#dl-unix" class="dl-">Haiku OS</a>)
  60.                         </small>
  61.                     </li>
  62.                     <li><a href="#screenshots">Screenshots</a></li>
  63.                     <li><a href="#platforms">Platforms</a></li>
  64.                     <li><a href="#news">What's new?</a></li>
  65.                 </ul>
  66.                 <p>
  67.                     You can try it on my demo server using SSH.
  68.                     Log in as play@anonymine-demo.oskog97.com,
  69.                     password is "play".<br/>
  70.                     <a href="http://anonymine-demo.oskog97.com/" class="printurl"
  71.                     >Leaderboard for public demo server</a>
  72.                 </p>
  73.             </div>
  74.             <section><div class="section" id="about">
  75.             <h2>About</h2>
  76.             <p class="notprint"><small><a href="#top">To top of the page</a></small></p>
  77.             <p>
  78.                 Anonymine is the "anonymous minesweeper" as I never had any
  79.                 name for it, but I think "Anonymine" works just fine.
  80.                 Back in December 2015 I was curious about creating an algorithm
  81.                 for solving minesweeper, and then I needed an excuse for it
  82.                 so I turned it into a terminal game that can be solved wihout any
  83.                 guessing.
  84.             </p>
  85.             <p>
  86.                 Do note that it runs in the terminal, so it may not be your cup of
  87.                 tea.  Mouse input is usually supported, but only really useful in
  88.                 hexagonal mode.
  89.             </p>
  90.             <p>
  91.                 Being solvable without guessing is not its only feature,
  92.                 it has many other unusual or even unique features:
  93.                 the games are fully customizable and Anonymine seems to be the
  94.                 only minesweeper with <span class="a"><a
  95.                 href="https://en.wikipedia.org/wiki/Von_Neumann_neighborhood"
  96.                 >von Neumann grids</a>.</span>
  97.                 <!-- No printurl, it's just Wikipedia. -->
  98.             </p>
  99.             <p>
  100.                 For each game you can set the field type (normal / hexagonal
  101.                 / von Neumann), width, height and number of mines, only
  102.                 restricted to certain minimums and security limits (to avoid
  103.                 igniting your computer).
  104.             </p>
  105.             <div class="atom">
  106.             <h3>The supported field types/game types are:</h3>
  107.             <div class="atom">
  108.             <!-- FIXME: This should be a dl with dt and dd. -->
  109.             <h4>Von Neumann grids</h4>
  110.                 <p>
  111.                     I have never seen another
  112.                     minesweeper that can have fields with von Neumann
  113.                     grids.  In a von Neumann neighbourhood (grid),
  114.                     each cell/square has only four neighbours, at the edges
  115.                     but not at the corners.
  116.                 </p>
  117.                 <p>
  118.                     The biggest number you'll ever see is 3. But that doesn't
  119.                     mean it's easy, it's quite the opposite.
  120.                 </p>
  121.             </div>
  122.             <div class="atom">
  123.             <h4>Traditional fields with Moore grids</h4>
  124.                 <p>Like any other minsweeper.</p>
  125.             </div>
  126.             <div class="atom">
  127.             <h4>Hexagonal fields</h4>
  128.                 <p>
  129.                     Every cell is a hexagon and has six
  130.                     neighbours, (with obvious exceptions).
  131.                     This mode has separate key bindings because there is no
  132.                     single "up" and single "down" direction.
  133.                 </p>
  134.             </div>
  135.             </div>
  136.             <div class="atom">
  137.             <h3>More features:</h3>
  138.             <ul>
  139.                 <li>
  140.                     It looks almost fine on monochrome terminals.
  141.                 </li>
  142.                 <li>
  143.                     Even the losers can get on their very own highscores table.
  144.                 </li>
  145.                 <li>
  146.                     There are cheat codes. They're not useful, but will be a
  147.                     challenge to crack.
  148.                 </li>
  149.             </ul>
  150.             </div>
  151.             </div></section>
  152.             <section><div class="section" id="download">
  153.             <h2>Download</h2>
  154.             <p class="notprint"><small><a href="#top">To top of the page</a></small></p>
  155.             <p><strong>NOTE</strong>:  Not for smartphones and tablets.</p>
  156.             <p class="notprint bold">
  157.                 <a href="#dl-unix">Linux, macOS, unix-likes, Haiku</a>,
  158.                 <a href="#dl-windows">Windows</a>,
  159.             </p>
  160.             <p><a href="__SITE__/archive/anonymine/?C=M&amp;O=A"
  161.                   class="printurl">Archive of all released versions</a></p>
  162.             <p>
  163.                 If you find any bugs, please <span class="a"><a
  164.                      class="printurl"
  165.                     href="https://gitlab.com/oskog97/anonymine/issues"
  166.                 >create an issue</a>.</span>
  167.             </p>
  168.             <div class="atom">
  169.             <h3 id="dl-unix">GNU/Linux, macOS, *BSD, Cygwin, other unix-like
  170.                              operating systems, and Haiku</h3>
  171.             <ul>
  172.                 <li><a href="__SITE__/archive/anonymine/anonymine-0.6.35.tar.xz"
  173.                     class="printurl download">xz compressed tarball of version 0.6.35 from 2024-01-31</a></li>
  174.                 <li><a class="printurl"
  175.                     href="https://gitlab.com/oskog97/anonymine/">GitLab</a></li>
  176.                 <li><a href="#release-notes">Release notes</a></li>
  177.             </ul>
  178.             </div>
  179.             <div class="atom">
  180.             <h3 id="dl-windows">Windows</h3>
  181.             <p>There are a few options:</p>
  182.             <ol>
  183.                 <li><strong>Recommended:</strong> WSL (both 1 and 2 work just fine)</li>
  184.                 <li>Automatic Cygwin and Anonymine installer</li>
  185.                 <li>Install Python and windows-curses</li>
  186.             </ol>
  187.             <p><a href="https://gitlab.com/oskog97/anonymine/-/wikis/Windows"
  188.                 >Comparison of options</a></p>
  189.             <h4>Automatic Cygwin installer</h4>
  190.             Downloads:
  191.             <ul>
  192.                 <li><a href="__SITE__/archive/anonymine/windows/Anonymine-Windows-16.13.0-cygsetup-2.929.zip"
  193.                     class="printurl download">Windows installer from 2024-02-03
  194.                     (version 16.13.0
  195.                     with Cygwin setup 2.929)
  196.                 </a></li>
  197.                 <li><a href="https://gitlab.com/oskog97/anonymine-windows"
  198.                     class="printurl">Fetch newest version from GitLab
  199.                 </a></li>
  200.             </ul>
  201.             <h4>Install Python and windows-curses</h4>
  202.             It is possible to run the unix version with some limitations.
  203.             <ul>
  204.                 <li><a class="printurl"
  205. href="https://gitlab.com/oskog97/anonymine/blob/master/doc/INSTALL.Windows.txt">
  206.                     Instructions</a>
  207.                     </li>
  208.                 <li>You can download as a zip from <span class="a"><a
  209. href="https://gitlab.com/oskog97/anonymine/-/archive/master/anonymine-master.zip"
  210.                     class="printurl">Gitlab</a>.</span></li>
  211.             </ul>
  212.             </div>
  213.             </div></section>
  214.             <section><div class="section" id="screenshots">
  215.             <h2>Screenshots</h2>
  216.             <p class="notprint"><small><a href="#top">To top of the page</a></small></p>
  217.             <p>
  218.                 <img width="484" height="316" alt="" src="imgs4/last-cells.png"/>
  219.                 <br/><span class="caption">
  220.                     The von Neumann field: The biggest number you'll ever see
  221.                     is 3.  This mode makes Anonymine a unique minesweeper.
  222.                     (Attention mode has been enabled to find the last few
  223.                     cells.)
  224.                 </span>
  225.             </p>
  226.             <p>
  227.                 <img width="484" height="316" alt="" src="imgs4/traditional.png"/>
  228.                 <br/><span class="caption">
  229.                     Traditional (Moore) field, nothing special
  230.                 </span>
  231.             </p>
  232.             <p>
  233.                 <img width="484" height="316" alt="" src="imgs4/hexagonal.png"/>
  234.                 <br/><span class="caption">
  235.                     Hexagonal field
  236.                 </span>
  237.             </p>
  238.             <p>
  239.                 <img width="484" height="316" alt="" src="imgs4/losers.png"/>
  240.                 <br/><span class="caption">
  241.                     The losers' highscores
  242.                 </span>
  243.             </p>
  244.             </div></section>
  245.             <section><div class="section" id="platforms">
  246.             <h2>Platforms</h2>
  247.             <p class="notprint"><small><a href="#top">To top of the page</a></small></p>
  248.             <p>
  249.                 Check the <a class="printurl"
  250. href="https://gitlab.com/oskog97/anonymine/-/blob/master/README.md#blob-content-holder"
  251.                 >readme</a> and <a class="printurl"
  252. href="https://gitlab.com/oskog97/anonymine/blob/master/doc/INSTALL.txt"
  253.                 >installation instructions</a> for more details.
  254.             </p>
  255.             <div class="atom">
  256.             <h3>Tested on</h3>
  257.             <p>
  258.                 Here's a list of various platforms Anonymine has been tested
  259.                 on.  It works on all of them unless I say otherwise, but there
  260.                 may be some minor issues.
  261.             </p>
  262.             <ul>
  263.                 <li>Various GNU/Linux distributions</li>
  264.                 <li>FreeBSD, OpenBSD, NetBSD, DragonflyBSD</li>
  265.                 <li>Haiku</li>
  266.                 <li>SerenityOS</li>
  267.                 <li>macOS</li>
  268.                 <li>OpenIndiana and Solaris</li>
  269.                 <li>Debian GNU/Hurd</li>
  270.                 <li>Cygwin (on Windows and ReactOS)</li>
  271.                 <li>Windows and ReactOS (without Cygwin)</li>
  272.             </ul>
  273.             Python interpreters:
  274.             <ul>
  275.                 <li>CPython</li>
  276.                 <li>PyPy (lacks <code>curses</code> on Windows)</li>
  277.             </ul>
  278.             </div>
  279.             <div class="atom">
  280.             <h4>"Some coercion required"</h4>
  281.             <p>
  282.                 Using <span class="a"><a href="http://gitlab.com/oskog97/poop"
  283.                 class="printurl">Pööp</a>,</span> Anonymine can be made to work
  284.                 on even more platforms.
  285.                 <span class="bold">"Do not try this at home"</span>
  286.             </p>
  287.             <dl>
  288.                 <dt>GraalVM Python</dt>
  289.                 <dd>Needs only <code>curses</code></dd>
  290.                 <dt>PyPy on Windows</dt>
  291.                 <dd>Needs only <code>curses</code>,
  292.                     but the Windows console is really slow</dd>
  293.                 <dt>Jython</dt>
  294.                 <dd>Needs <code>curses</code> and <code>multiprocessing</code></dd>
  295.                 <dt>IronPython</dt>
  296.                 <dd>Needs very different configuration files and
  297.                     <code>curses</code> and <code>multiprocessing</code></dd>
  298.                 <dt>Minix 3.4</dt>
  299.                 <dd>Needs <code>multiprocessing</code> and <code>threading</code></dd>
  300.             </dl>
  301.             </div>
  302.             </div></section>
  303.             <section><div class="section" id="news">
  304.                 <h2>What's new?</h2>
  305.                 <p class="notprint"><small><a href="#top">To top of the page</a></small></p>
  306.                 <dl>
  307.                 <dt id="release-notes">Release notes</dt>
  308.                 <dd>
  309.                 <pre>0.6.32
  310.     - enginecfg update: more fine grained control of highscores.
  311.       It SHOULD be backward compatible.
  312. 0.6.22
  313.     - check-install-cfg is smarter now
  314.     - If you have modified cursescfg you may want to check what updates 0.6.20
  315.       brought, previously check-install-cfg would have FORCED you to update.
  316. 0.6.20 (BROKEN for new installs, fixed in 0.6.21)
  317.     - Significant changes in cursescfg.  Old configuration file is still
  318.       compatible, but most changes of this release is in that configuration
  319.       file.
  320.     - check-install-cfg can't properly check compatibility, run
  321.         ./configure skip-check-install-cfg=true
  322.       if you want to keep the old cursescfg and assume it works.
  323. 0.6.19
  324.     - Fix issue 32 and 33
  325.     - Fix 33 will prevent you from setting ONLY the -c option when used
  326.       over an SSH connection. Simply add another option or run
  327.       `SSH_CLIENT= anonymine -c path/to/cursescfg`
  328.     - From now on, configuration files MUST NOT be modifiable by group members
  329.       even if group ID is zero.</pre>
  330.                 <p><a class="printurl"
  331.         href="https://gitlab.com/oskog97/anonymine/blob/master/doc/RELEASE-NOTES"
  332.                 >See the rest of the file on Gitlab</a></p>
  333.                 </dd>
  334.                 <dt>Bigger changes</dt>
  335.                 <dd>
  336.                 <pre>What's new in 0.7.0 since 0.6.0?
  337. ================================
  338. 2024-xx-xx
  339. Improved platform support:
  340.     - SerenityOS (0.6.26, improved 0.6.31)
  341.     - Icon for Anonymine on Haiku (0.6.17)
  342.     - Fixed a race condition that previosuly required a bunch of platform
  343.       specific workarounds (0.6.11)
  344.     - Use Notepad to display highscores on Windows (0.6.33)
  345. Updates:
  346.     - New, much faster, field initialization algorithm. (0.6.29)
  347.     - Reproducible fields using seeds (0.6.32)
  348.     - Fixed race condition (fix14) (0.6.11)
  349. Security fixes:
  350.     - 0.6.19: Prevent information leak if Anonymine is used as login shell
  351.               for ssh.
  352.     - 0.6.32: Prevent local DoS.  Don't read the entire highscores file,
  353.               which is writeable by everyone, if it's too big.
  354.     - 0.6.34: Check file permissions before loading configuration files</pre>
  355.                 <p><a class="printurl"
  356.         href="https://gitlab.com/oskog97/anonymine/blob/master/doc/NEWS"
  357.                 >See the rest of NEWS on Gitlab</a></p>
  358.                 </dd>
  359.                 <dt>Low level changes</dt>
  360.                 <dd>
  361.                 <p><a class="printurl"
  362.         href="https://gitlab.com/oskog97/anonymine/blob/master/ChangeLog"
  363.                 >See ChangeLog on Gitlab</a></p>
  364.                 </dd>
  365.                 </dl>
  366.             </div></section>
  367.         </div></main>
  368.         __FOOTER__
  369.     </body>
  370. </html>