Add pdf manual generated from README.md

This commit is contained in:
Peter Osterlund 2019-09-26 20:19:38 +02:00
parent 08e266a789
commit 913cb0d9db
4 changed files with 51 additions and 50 deletions

1
.gitignore vendored
View File

@ -13,3 +13,4 @@
/captures /captures
.externalNativeBuild .externalNativeBuild
/release /release
*~

View File

@ -1,6 +1,4 @@
# DroidFish - An Android chess app # Introduction
## Introduction
*DroidFish* is a feature-rich graphical chess user interface, combined with *DroidFish* is a feature-rich graphical chess user interface, combined with
the very strong *Stockfish* chess engine. the very strong *Stockfish* chess engine.
@ -20,7 +18,7 @@ that even beginners have a reasonable chance to beat it.
<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80"/></a> <img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80"/></a>
## Using the user interface # Using the user interface
* Many common actions are invoked by tapping on user interface elements such as * Many common actions are invoked by tapping on user interface elements such as
buttons, chess pieces and text. buttons, chess pieces and text.
@ -45,7 +43,7 @@ that even beginners have a reasonable chance to beat it.
set the castling right flags appropriately. set the castling right flags appropriately.
## Permissions # Permissions
*DroidFish* requests the *Storage* permission when it is first started. This *DroidFish* requests the *Storage* permission when it is first started. This
permission is used to read/write data in the `DroidFish` directory on the permission is used to read/write data in the `DroidFish` directory on the
@ -62,7 +60,7 @@ It is possible to use *DroidFish* without granting the *Storage* permission, but
functionality will be rather limited. functionality will be rather limited.
## Default buttons # Default buttons
By default the following buttons are displayed next to the chess board, from By default the following buttons are displayed next to the chess board, from
left to right: left to right:
@ -91,7 +89,7 @@ See the **Button configuration** section below for information about how to
configure button actions. configure button actions.
## Game mode # Game mode
Change the *game mode* by tapping the `M` button. There are three types of game Change the *game mode* by tapping the `M` button. There are three types of game
modes: modes:
@ -124,7 +122,7 @@ light bulb image) that toggles analysis mode. When analysis mode is disabled the
game mode that was used before analysis mode was enabled is restored. game mode that was used before analysis mode was enabled is restored.
## The move list text area # The move list text area
The move list keeps a record of moves played during a game and during analysis. The move list keeps a record of moves played during a game and during analysis.
Tap on a move in the move list to move to the corresponding point in the game. Tap on a move in the move list to move to the corresponding point in the game.
@ -195,12 +193,12 @@ Tap and hold the move text area to open a menu with the following actions:
**Note!** A null move is not a legal move in chess. **Note!** A null move is not a legal move in chess.
## Hints about the current position # Hints about the current position
*DroidFish* can display different kinds of hints to improve the user's *DroidFish* can display different kinds of hints to improve the user's
understanding of the current position on the board. understanding of the current position on the board.
### Engine analysis ## Engine analysis
When the engine is analyzing a position, information about the current position When the engine is analyzing a position, information about the current position
is displayed at the bottom of the screen. Information is also displayed while is displayed at the bottom of the screen. Information is also displayed while
@ -263,12 +261,12 @@ The displayed information can be configured in different ways by long pressing
on the analysis text area when it is visible. A context menu appears with the on the analysis text area when it is visible. A context menu appears with the
following choices: following choices:
#### Add Analysis ### Add Analysis
Select *Add Analysis* to add the moves from the principal variation to the Select *Add Analysis* to add the moves from the principal variation to the
current game. current game.
#### Number of Variations ### Number of Variations
Select *Number of Variations* to control how many best lines the engine will Select *Number of Variations* to control how many best lines the engine will
calculate. By default only the best line of play is calculated. Change this to a calculate. By default only the best line of play is calculated. Change this to a
@ -279,19 +277,19 @@ not displayed if not supported by the currently used engine.
playing a game. During game play only the best line of play is calculated to playing a game. During game play only the best line of play is calculated to
avoid a speed loss that would make the engine play weaker. avoid a speed loss that would make the engine play weaker.
#### Show whole variations / Truncate variations ### Show whole variations / Truncate variations
Select this option to enable or disable the display of the full PV the engine Select this option to enable or disable the display of the full PV the engine
has computed. The default (*Truncate variations*) is to only display the first has computed. The default (*Truncate variations*) is to only display the first
few moves that fit on a single line on the screen. few moves that fit on a single line on the screen.
#### Hide statistics / Show statistics ### Hide statistics / Show statistics
If you are not interested in the last line that displays statistics about the If you are not interested in the last line that displays statistics about the
engine (as opposed to the other lines that display information about the chess engine (as opposed to the other lines that display information about the chess
position), select *Hide statistics* to hide that information. position), select *Hide statistics* to hide that information.
### Opening book moves ## Opening book moves
If the current board position is included in the currently used opening book, If the current board position is included in the currently used opening book,
information about all book moves for the position is displayed at the bottom of information about all book moves for the position is displayed at the bottom of
@ -302,7 +300,7 @@ Opening book hints can be enabled/disabled from *Left Drawer Menu* -> *Settings*
-> *Hints* -> *Show Book Hints*. Note that the chess engine will use the opening -> *Hints* -> *Show Book Hints*. Note that the chess engine will use the opening
book even if opening book hints are disabled. book even if opening book hints are disabled.
### Opening name (ECO codes) ## Opening name (ECO codes)
The setting *Show ECO codes* controls when ECO codes and opening names are The setting *Show ECO codes* controls when ECO codes and opening names are
displayed. There are three options: displayed. There are three options:
@ -312,7 +310,7 @@ displayed. There are three options:
up to 5 moves after the last move in the ECO database. up to 5 moves after the last move in the ECO database.
* `Always`: ECO codes and opening names are displayed during the whole game. * `Always`: ECO codes and opening names are displayed during the whole game.
### Arrows ## Arrows
*DroidFish* sometimes draws arrows on the chess board to give information about *DroidFish* sometimes draws arrows on the chess board to give information about
the current position. the current position.
@ -342,7 +340,7 @@ applies from the following list defines what the arrows mean:
position, the arrows display the first N variations. Variations appear for position, the arrows display the first N variations. Variations appear for
example if you undo a move and play a different move instead. example if you undo a move and play a different move instead.
### Endgame tablebase information ## Endgame tablebase information
To change how endgame tablebase hints are displayed, go to *Left drawer menu* -> To change how endgame tablebase hints are displayed, go to *Left drawer menu* ->
*Settings* -> *Endgame Tablebases* and change *Show Hints* and/or *Edit Board *Settings* -> *Endgame Tablebases* and change *Show Hints* and/or *Edit Board
@ -382,7 +380,7 @@ on what tablebase file was probed:
* A Syzygy `.rtbw` tablebase probe produces a win/draw/loss score. * A Syzygy `.rtbw` tablebase probe produces a win/draw/loss score.
## Claim/Offer/Accept Draw # Claim/Offer/Accept Draw
*DroidFish* does not automatically end a game when the 50-move rule or the *DroidFish* does not automatically end a game when the 50-move rule or the
3-fold repetition rule is triggered. According to FIDE (International Chess 3-fold repetition rule is triggered. According to FIDE (International Chess
@ -418,9 +416,9 @@ if the players want to play very long games so it does not have to implement
these rules. these rules.
## Saving and loading games and positions # Saving and loading games and positions
### PGN ## PGN
To load a game from a PGN file, go to *Left drawer menu* -> *File* -> *Load game To load a game from a PGN file, go to *Left drawer menu* -> *File* -> *Load game
from PGN file*. Select the file to read, then select the game to load from the from PGN file*. Select the file to read, then select the game to load from the
@ -445,7 +443,7 @@ file.
**Hint!** To delete the whole file, select *Delete File* from the menu. **Hint!** To delete the whole file, select *Delete File* from the menu.
### FEN/EPD ## FEN/EPD
To load a position from a FEN/EPD file, go to *Left drawer menu* -> *File* -> To load a position from a FEN/EPD file, go to *Left drawer menu* -> *File* ->
*Load position from file*. Select the file to read, then select the position to *Load position from file*. Select the file to read, then select the position to
@ -459,7 +457,7 @@ game with the selected position.
Saving a position to a FEN/EPD file has not been implemented. Saving a position to a FEN/EPD file has not been implemented.
### OI File Manager ## OI File Manager
If the [*OI File Manager*](https://play.google.com/store/apps/details?id=org.openintents.filemanager) If the [*OI File Manager*](https://play.google.com/store/apps/details?id=org.openintents.filemanager)
app (or a compatible file manager) is installed *DroidFish* will use the app to app (or a compatible file manager) is installed *DroidFish* will use the app to
@ -472,13 +470,13 @@ will only be able to read files from such locations.
**Hint!** If the OI File Manager is installed, it can also be used to copy, move **Hint!** If the OI File Manager is installed, it can also be used to copy, move
and delete existing files when invoked to load/save a PGN/FEN/EPD file. and delete existing files when invoked to load/save a PGN/FEN/EPD file.
### Character encoding ## Character encoding
*DroidFish* assumes that PGN/FEN/EPD files are encoded in UTF-8 format. ASCII is *DroidFish* assumes that PGN/FEN/EPD files are encoded in UTF-8 format. ASCII is
a subset of UTF-8 so that will work too. Other encodings will likely cause at a subset of UTF-8 so that will work too. Other encodings will likely cause at
least some characters to be displayed incorrectly. least some characters to be displayed incorrectly.
### Setting up a position ## Setting up a position
To set up a position, open the *Left drawer menu* and select *Edit Board*. A To set up a position, open the *Left drawer menu* and select *Edit Board*. A
chess board editor is opened where you can move pieces around freely and chess board editor is opened where you can move pieces around freely and
@ -518,9 +516,9 @@ position is illegal, the illegal position is discarded and the current game is
restored. restored.
## Opening books # Opening books
### Pre-installed books ## Pre-installed books
*DroidFish* includes three pre-installed opening books: *DroidFish* includes three pre-installed opening books:
@ -533,7 +531,7 @@ restored.
1. &lt;No Book>: This is an empty opening book that can be used when no 1. &lt;No Book>: This is an empty opening book that can be used when no
opening book is wanted. opening book is wanted.
### Installing additional opening books ## Installing additional opening books
To use *polyglot* or *CTG* book files: To use *polyglot* or *CTG* book files:
@ -556,7 +554,7 @@ to create polyglot opening books from a collection of PGN games. How to find and
use these resources is outside the scope of this manual. use these resources is outside the scope of this manual.
## UCI engines # UCI engines
In addition to the pre-installed chess engines, *DroidFish* can also use third In addition to the pre-installed chess engines, *DroidFish* can also use third
party UCI engines: party UCI engines:
@ -572,14 +570,14 @@ party UCI engines:
downloaded from the internet. How to find such engines is outside the scope of downloaded from the internet. How to find such engines is outside the scope of
this document. this document.
### Open exchange engines ## Open exchange engines
*DroidFish* supports the *open exchange chess engine interface*, which is a way *DroidFish* supports the *open exchange chess engine interface*, which is a way
to package UCI chess engines as Android apps. If you install such an app the to package UCI chess engines as Android apps. If you install such an app the
engine will automatically appear in the list of available engines in engine will automatically appear in the list of available engines in
*DroidFish*. *DroidFish*.
### Changing UCI options ## Changing UCI options
To change options for the current chess engine, go to *Left drawer menu* -> To change options for the current chess engine, go to *Left drawer menu* ->
*Manage chess engines* -> *Set options*. (Alternatively, tap and hold the light *Manage chess engines* -> *Set options*. (Alternatively, tap and hold the light
@ -597,7 +595,7 @@ Engine settings are saved, so the next time you use the same chess engine it
will use the settings you saved the last time it was used. To restore default will use the settings you saved the last time it was used. To restore default
settings, open the UCI options editor and click `RESET` and `OK`. settings, open the UCI options editor and click `RESET` and `OK`.
### Using a remote engine server ## Using a remote engine server
*DroidFish* can use UCI engines that run on a remote server computer. *DroidFish* can use UCI engines that run on a remote server computer.
@ -626,9 +624,9 @@ running VPN server software in the private network. How to set up a VPN server
is beyond the scope of this document. is beyond the scope of this document.
## Endgame tablebases # Endgame tablebases
### Syzygy ## Syzygy
*DroidFish* can use [Syzygy endgame tablebases](https://www.chessprogramming.org/Syzygy_Bases), *DroidFish* can use [Syzygy endgame tablebases](https://www.chessprogramming.org/Syzygy_Bases),
which can be downloaded for free from the internet. To use Syzygy tablebases: which can be downloaded for free from the internet. To use Syzygy tablebases:
@ -644,7 +642,7 @@ impractical to use larger than 5-men tablebases for handheld devices because of
the very large size of 6-men and 7-men tablebases. the very large size of 6-men and 7-men tablebases.
### Gaviota ## Gaviota
*DroidFish* can use [Gaviota endgame tablebases](http://sites.google.com/site/gaviotachessengine/Home/endgame-tablebases-1), *DroidFish* can use [Gaviota endgame tablebases](http://sites.google.com/site/gaviotachessengine/Home/endgame-tablebases-1),
which can be downloaded for free from the internet. To use Gaviota tablebases: which can be downloaded for free from the internet. To use Gaviota tablebases:
@ -656,7 +654,7 @@ which can be downloaded for free from the internet. To use Gaviota tablebases:
control how the tablebases are used. control how the tablebases are used.
### Tablebases for remote engines ## Tablebases for remote engines
To configure tablebases for remote engines, go to *Left drawer menu* -> To configure tablebases for remote engines, go to *Left drawer menu* ->
*Settings* -> *Endgame Tablebases* and change *GTB Network Directory* and *Settings* -> *Endgame Tablebases* and change *GTB Network Directory* and
@ -664,9 +662,9 @@ To configure tablebases for remote engines, go to *Left drawer menu* ->
on the remote computer. on the remote computer.
## Interfacing with other apps # Interfacing with other apps
### Sharing games and positions ## Sharing games and positions
To share the current game, tap and hold the chess board and select *Share game* To share the current game, tap and hold the chess board and select *Share game*
or *Share as Text* from the menu. This brings up a list of applications that can or *Share as Text* from the menu. This brings up a list of applications that can
@ -685,7 +683,7 @@ FEN/EPD data.
*DroidFish* will also appear in the list of target apps when you share chess *DroidFish* will also appear in the list of target apps when you share chess
data from other chess apps installed on the device. data from other chess apps installed on the device.
### Scid on the go ## Scid on the go
If the [*Scid on the go*](https://play.google.com/store/apps/details?id=org.scid.android) If the [*Scid on the go*](https://play.google.com/store/apps/details?id=org.scid.android)
app is installed *DroidFish* can directly open games from Scid database files. app is installed *DroidFish* can directly open games from Scid database files.
@ -696,7 +694,7 @@ game to load from the file.
**Hint!** If you later want to load a different game from the same Scid file, **Hint!** If you later want to load a different game from the same Scid file,
use the *folder button* to go directly to the game list for the last used file. use the *folder button* to go directly to the game list for the last used file.
### ChessOcr ## ChessOcr
If the [*ChessOcr*](https://play.google.com/store/apps/details?id=com.kgroth.chessocr) If the [*ChessOcr*](https://play.google.com/store/apps/details?id=com.kgroth.chessocr)
app is installed *DroidFish* can use that app to scan chess positions from app is installed *DroidFish* can use that app to scan chess positions from
@ -711,13 +709,13 @@ mode with the invalid position. Correct the position to make it valid and click
the `OK` button to use the position. the `OK` button to use the position.
## Settings # Settings
*DroidFish* has a large number of configurable settings, which can be changed by *DroidFish* has a large number of configurable settings, which can be changed by
opening the *Left drawer menu* and selecting *Settings*. Some important settings opening the *Left drawer menu* and selecting *Settings*. Some important settings
not already explained are described in the following sections. not already explained are described in the following sections.
### Time control ## Time control
It is possible to specify the time control as the number of moves to be played It is possible to specify the time control as the number of moves to be played
in a given amount of time. Additionally it is possible to specify a time in a given amount of time. Additionally it is possible to specify a time
@ -735,7 +733,7 @@ what to do if a player runs out of time.
Time control changes take effect when a new game is started. Time control changes take effect when a new game is started.
### Playing strength ## Playing strength
For built-in engines (*Stockfish* and *CuckooChess*), it is possible to specify For built-in engines (*Stockfish* and *CuckooChess*), it is possible to specify
the playing strength in the *Engine Settings* section. The strength is specified the playing strength in the *Engine Settings* section. The strength is specified
@ -763,7 +761,7 @@ is in analysis mode, full strength is always used.
effect. It may however be possible to set the engine strength by modifying some effect. It may however be possible to set the engine strength by modifying some
of the engine UCI options. of the engine UCI options.
### Hash table size ## Hash table size
Use *Left drawer menu* -> *Settings* -> *Engine Settings* -> *Hash Table* to Use *Left drawer menu* -> *Settings* -> *Engine Settings* -> *Hash Table* to
change the hash table size used by the chess engine. change the hash table size used by the chess engine.
@ -782,12 +780,12 @@ if you have determined that it does not cause your device to become unstable.
**Note!** The hash table size limit is only enforced for engines running on the **Note!** The hash table size limit is only enforced for engines running on the
device. Network engines are not affected. device. Network engines are not affected.
### Text size ## Text size
The text size used to display moves and analysis information can be changed The text size used to display moves and analysis information can be changed
in *Settings* -> *Appearance* -> *Text Size*. in *Settings* -> *Appearance* -> *Text Size*.
### Piece names ## Piece names
Use the *Piece Names* setting in the *Appearance* section to control how pieces Use the *Piece Names* setting in the *Appearance* section to control how pieces
are represented in the move list and analysis information. There are three are represented in the move list and analysis information. There are three
@ -810,7 +808,7 @@ available choices:
piece names, so English letters are always used/assumed during PGN piece names, so English letters are always used/assumed during PGN
export/import. export/import.
### Piece set ## Piece set
You can change the appearance of the chess pieces on the chess board using the You can change the appearance of the chess pieces on the chess board using the
*Piece Names* option in the *Appearance* section. It is also possible to change *Piece Names* option in the *Appearance* section. It is also possible to change
@ -818,7 +816,7 @@ piece colors in *Color Settings* in the *Appearance* section. Note however that
piece colors are overwritten if you change the color theme using *Left drawer piece colors are overwritten if you change the color theme using *Left drawer
menu* -> *Set Color Theme*. menu* -> *Set Color Theme*.
### Move announcement ## Move announcement
Use *Left drawer menu* -> *Settings* -> *Appearance* -> *Move Announcement* to Use *Left drawer menu* -> *Settings* -> *Appearance* -> *Move Announcement* to
control how played moves are announced. The following settings are available: control how played moves are announced. The following settings are available:
@ -834,7 +832,7 @@ control how played moves are announced. The following settings are available:
Use *Settings* -> *Appearance* -> *Enable Vibration* to make the device vibrate Use *Settings* -> *Appearance* -> *Enable Vibration* to make the device vibrate
when the computer player makes a move. when the computer player makes a move.
### Button configuration ## Button configuration
Button actions can be changed from *Left drawer menu* -> *Settings* -> Button actions can be changed from *Left drawer menu* -> *Settings* ->
*Behavior* -> *Configure Buttons*. *Behavior* -> *Configure Buttons*.
@ -852,7 +850,7 @@ leftmost button.
The three rightmost buttons (the `M` button and the left/right arrow buttons) The three rightmost buttons (the `M` button and the left/right arrow buttons)
have predefined actions that cannot be changed by the user. have predefined actions that cannot be changed by the user.
### Opening book settings ## Opening book settings
You can change aspects of the opening book from *Left drawer menu* -> *Settings* You can change aspects of the opening book from *Left drawer menu* -> *Settings*
-> *Other* -> *Opening Book Settings*. The following settings are available: -> *Other* -> *Opening Book Settings*. The following settings are available:

2
doc/Makefile Normal file
View File

@ -0,0 +1,2 @@
droidfish_manual.pdf : ../README.md
pandoc -f gfm --pdf-engine=xelatex --toc -N --variable papersize=a4 $< -o $@

BIN
doc/droidfish_manual.pdf Normal file

Binary file not shown.