
      *** OpenKropki - an open-source 'kropki' implementation ***
                     http://mateusz.fr/openkropki/


=== What is this? ============================================================

OpenKropki is a free, open-source take on kropki - a classic Eastern European
pen-and-paper "dots" game. Think of it as Go's cheerful cousin: same appetite
for surrounding the opponent, but born for a blank notebook page instead of a
wooden board and a bowl of stones.

You'll meet it under many names: kropki (Polish), точки / tochki (Russian),
židi (Czech/Slovak), крапки (Ukrainian). Wherever schoolkids had grid paper
and two pens, kropki somehow showed up.


=== How to play ==============================================================

Two players take turns. On your turn you place one of your dots on an empty
intersection of the grid. That's it -- one dot, then the other player goes.

The goal is simple and deliciously mean: surround enemy dots and capture them.
Whoever has captured more enemy dots when the board fills up wins.

--- Captures & bases ---------------------------------------------------------

A capture happens when your dots form a closed fence that completely cuts off
one or more enemy dots from the outside of the board. That enclosed pocket
becomes your base:

  * every enemy dot inside is captured and counts toward your score;
  * empty intersections are trapped inside the base too (no more plays there);
  * the boundary is drawn as walls.

A few nuances worth knowing:

  * The fence is made of your free (not yet captured) dots. Neighbouring dots
    that share a side are what actually seal a pocket - leave a gap and the
    area stays open.
  * You need at least one enemy dot inside for a capture to fire; empty space
    alone does not score.
  * A base cannot be trespassed: nobody places new dots inside it. It is not
    immortal, though -- if the opponent later surrounds your whole base with a
    larger fence of their own, they can capture it (and your dots) in turn.
    Territory can flip!
  * Captured dots stay on the board as trophies; they mark ownership, but they
    no longer help you build new fences.

--- Ending the game ----------------------------------------------------------

Play continues until no empty intersections remain. More captured enemy dots:
you win.

There is no "pass" in the usual human game: if a legal spot exists, someone
will eventually fill it.


=== Meet the AIs =============================================================

Pick opponents from the New Game menu:

  * Dumbo  - cheerfully clueless. Perfect for learning the rules.
  * Tigran - classic MiniMax thinker. Solid and predictable.
  * Bender - fast territory specialist. Paints a surround-efficiency map and
             plays the hottest empty cell, with hard overrides for immediate
             captures and one-move threats.
  * Viktor - sharp tactical fighter: iterative-deepening MiniMax with a
             transposition table, hungry for captures, threats and pockets.
             Prefers contact and threats; may finish a near-complete trap
             only as a side idea. Skips futile defenses that feed a lost base.

Human vs human, human vs AI, and AI vs AI are all fair game on one machine.

See AI.TXT for a deeper technical tour of every engine.


=== Controls =================================================================

OpenKropki is mouse-operated:

  - left-click an intersection to place your dot
  - scroll up/down to zoom in/out
  - middle-click to reset zoom
  - click and drag to pan the playfield
  - right-click to recenter on the last move
  - ESC returns to the main menu at any time


=== A tiny bit of history ====================================================

Kropki / tochki grew out of Go's popularity in the Soviet sphere during the
1970s. Proper Go kit was scarce, rules felt heavy for a school break, and so
people reinvented the spirit of surrounding on ordinary squared paper. Many
variants appeared at once across the USSR and neighbouring countries - no
single inventor, just a contagious idea with a pen.


=== Contact ==================================================================

Wanna get in touch with OpenKropki's author? http://mateusz.fr/

Project page: http://mateusz.fr/openkropki/


=== MIT License ==============================================================

Copyright (C) 2014-2026 Mateusz Viste

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
