chess-puzzles - www.codemadness.org - www.codemadness.org saait content files
 (HTM) git clone git://git.codemadness.org/www.codemadness.org
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       chess-puzzles (11785B)
       ---
            1 1<- Back        /        codemadness.org        70
            2 i                codemadness.org        70
            3 i                codemadness.org        70
            4 i# Chess puzzle book generator                codemadness.org        70
            5 i                codemadness.org        70
            6 iLast modification on 2025-05-03                codemadness.org        70
            7 i                codemadness.org        70
            8 iThis was a christmas hack for fun and non-profit.                codemadness.org        70
            9 iI wanted to write a chess puzzle book generator.                codemadness.org        70
           10 hInspired by »1001 Deadly Checkmates by John Nunn, ISBN-13: 978-1906454258«,        URL:https://archive.org/details/1001deadlycheckm0000nunn        codemadness.org        70
           11 h»Steps Method workbooks« and other puzzle books.        URL:https://www.stappenmethode.nl/en/        codemadness.org        70
           12 i                codemadness.org        70
           13 i                codemadness.org        70
           14 i# Example output                codemadness.org        70
           15 i                codemadness.org        70
           16 h* English version: »https://codemadness.org/downloads/puzzles/«        URL:https://codemadness.org/downloads/puzzles/        codemadness.org        70
           17 h* Dutch version: »https://hiltjo.nl/puzzles/«        URL:https://hiltjo.nl/puzzles/        codemadness.org        70
           18 i                codemadness.org        70
           19 iTerminal version:                codemadness.org        70
           20 i                codemadness.org        70
           21 i        curl -s 'https://codemadness.org/downloads/puzzles/index.vt' | less -R                codemadness.org        70
           22 i                codemadness.org        70
           23 iI may or may not periodially update this page :)                codemadness.org        70
           24 i                codemadness.org        70
           25 hTime flies (since Christmas), here is a valentine edition with »attraction«        URL:https://lichess.org/practice/intermediate-tactics/attraction/        codemadness.org        70
           26 ipuzzles (not only checkmates) using the red "love" theme.                codemadness.org        70
           27 iIt is optimized for his and her pleasure:                codemadness.org        70
           28 i                codemadness.org        70
           29 hhttps://codemadness.org/downloads/puzzles-valentine/        URL:https://codemadness.org/downloads/puzzles-valentine/        codemadness.org        70
           30 i                codemadness.org        70
           31 i                codemadness.org        70
           32 i## Clone                codemadness.org        70
           33 i                codemadness.org        70
           34 i        git clone git://git.codemadness.org/chess-puzzles                codemadness.org        70
           35 i                codemadness.org        70
           36 i                codemadness.org        70
           37 i## Browse                codemadness.org        70
           38 i                codemadness.org        70
           39 iYou can browse the source-code at:                codemadness.org        70
           40 i                codemadness.org        70
           41 h* https://git.codemadness.org/chess-puzzles/        URL:https://git.codemadness.org/chess-puzzles/        codemadness.org        70
           42 1* gopher://codemadness.org/1/git/chess-puzzles        /git/chess-puzzles        codemadness.org        70
           43 i                codemadness.org        70
           44 i                codemadness.org        70
           45 i# Quick overview of how it works                codemadness.org        70
           46 i                codemadness.org        70
           47 iThe generate.sh shellscript generates the output and files for the puzzles.                codemadness.org        70
           48 i                codemadness.org        70
           49 iThe puzzles used are from the lichess.org puzzle database:                codemadness.org        70
           50 hhttps://database.lichess.org/#puzzles        URL:https://database.lichess.org/#puzzles        codemadness.org        70
           51 i                codemadness.org        70
           52 iThis database is a big CSV file containing the initial board state in the                codemadness.org        70
           53 iForsyth-Edwards Notation (FEN) format and the moves in Universal Chess                codemadness.org        70
           54 iInterface (UCI) format. Each line contains the board state and the initial and                codemadness.org        70
           55 isolution moves.                codemadness.org        70
           56 i                codemadness.org        70
           57 iThe generated index page is a HTML page, it lists the puzzles.  Each puzzle on                codemadness.org        70
           58 ithis page is an SVG image. This scalable image format looks good in all                codemadness.org        70
           59 iresolutions.                codemadness.org        70
           60 i                codemadness.org        70
           61 i                codemadness.org        70
           62 i# Open puzzle data                codemadness.org        70
           63 i                codemadness.org        70
           64 hLichess is an »open-source« and gratis website to play on-line chess. There are        URL:https://lichess.org/source        codemadness.org        70
           65 ino paid levels to unlock features.  All the software hosting Lichess is                codemadness.org        70
           66 iopen-source and anyone can register and play chess on it for free. Most of the                codemadness.org        70
           67 idata about the games played is also open.                codemadness.org        70
           68 i                codemadness.org        70
           69 iHowever, the website depends on your donations or contributions. If you can,                codemadness.org        70
           70 hplease do so.        URL:https://lichess.org/about        codemadness.org        70
           71 i                codemadness.org        70
           72 i                codemadness.org        70
           73 i# generate.sh                codemadness.org        70
           74 i                codemadness.org        70
           75 iReads puzzles from the database and shuffle them. Do some rough sorting and                codemadness.org        70
           76 icategorization based on difficulty and assign score points.                codemadness.org        70
           77 i                codemadness.org        70
           78 hThe random shuffling is done using a hard-coded »random seed«. This means on the        URL:https://en.wikipedia.org/wiki/Random_seed        codemadness.org        70
           79 isame machine with the same puzzle database it will regenerate the same sequence                codemadness.org        70
           80 iof random puzzles in a deterministic manner.                codemadness.org        70
           81 i                codemadness.org        70
           82 iIt outputs HTML, with support for CSS dark mode and does not require Javascript.                codemadness.org        70
           83 iIt includes a plain-text listing of the solutions in PGN notation for the                codemadness.org        70
           84 ipuzzles.                codemadness.org        70
           85 iIt also outputs .vt files suitable for the terminal. It uses unicode symbols                codemadness.org        70
           86 ifor the chess pieces and RGB color sequence for the board theme                codemadness.org        70
           87 i                codemadness.org        70
           88 i                codemadness.org        70
           89 i# fen.c                codemadness.org        70
           90 i                codemadness.org        70
           91 iThis is a program written in C to read and parse the board state in FEN format                codemadness.org        70
           92 iand read the UCI moves. It can output to various formats.                codemadness.org        70
           93 i                codemadness.org        70
           94 iSee the man page for detailed usage information.                codemadness.org        70
           95 i                codemadness.org        70
           96 ifen.c supports the following output formats:                codemadness.org        70
           97 i                codemadness.org        70
           98 i* ascii - very simple ASCII mode.                codemadness.org        70
           99 h* »fen« - output FEN of the board state (from FEN and optional played moves).        URL:https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation        codemadness.org        70
          100 h* »pgn« - Portable Game Notation.        URL:https://en.wikipedia.org/wiki/Portable_Game_Notation        codemadness.org        70
          101 i* speak - mode to output a description of the moves in words.                codemadness.org        70
          102 h* »SVG« - Scalable Vector Graphics image.        URL:https://en.wikipedia.org/wiki/SVG        codemadness.org        70
          103 i* tty - Terminal output with some markup using escape codes.                codemadness.org        70
          104 i                codemadness.org        70
          105 hfen.c can also run in »CGI« mode. This can be used on a HTTP server:        URL:https://en.wikipedia.org/wiki/Common_Gateway_Interface        codemadness.org        70
          106 i                codemadness.org        70
          107 hPosition from game: Rene Letelier Martner - Robert James Fischer, 1960-10-24        URL:https://codemadness.org/onlyfens?fen=6k1/ppq3bp/2n2np1/5p2/2P2P2/4rBN1/PP3K1P/RQ6%20w%20-%20-%200%2023&moves=f2e3&flip=1        codemadness.org        70
          108 i                codemadness.org        70
          109 h* https://codemadness.org/onlyfens        URL:https://codemadness.org/onlyfens        codemadness.org        70
          110 h* https://codemadness.org/onlyfens?fen=6k1/ppq3bp/2n2np1/5p2/2P2P2/4rBN1/PP3K1P/RQ6%20w%20-%20-%200%2023&moves=f2e3&flip=1        URL:https://codemadness.org/onlyfens?fen=6k1/ppq3bp/2n2np1/5p2/2P2P2/4rBN1/PP3K1P/RQ6%20w%20-%20-%200%2023&moves=f2e3&flip=1        codemadness.org        70
          111 h* https://codemadness.org/onlyfens?moves=e2e4%20e7e5&flip=1&theme=green&output=svg        URL:https://codemadness.org/onlyfens?moves=e2e4%20e7e5&flip=1&theme=green&output=svg        codemadness.org        70
          112 h* https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=pgn        URL:https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=pgn        codemadness.org        70
          113 h* https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=speak        URL:https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=speak        codemadness.org        70
          114 h* https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=ascii        URL:https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=ascii        codemadness.org        70
          115 h* https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=fen        URL:https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=fen        codemadness.org        70
          116 i                codemadness.org        70
          117 iTerminal output:                codemadness.org        70
          118 i                codemadness.org        70
          119 i        curl -s 'https://codemadness.org/onlyfens?moves=e2e4%20e7e5&output=tty'                codemadness.org        70
          120 i                codemadness.org        70
          121 i                codemadness.org        70
          122 i# Support for Dutch notated PGN and output                codemadness.org        70
          123 i                codemadness.org        70
          124 iFor pgn and "speak mode" it has an option to output Dutch notated PGN or speech                codemadness.org        70
          125 itoo.                codemadness.org        70
          126 i                codemadness.org        70
          127 iFor example:                codemadness.org        70
          128 i                codemadness.org        70
          129 i* Queen = Dame (Q -> D), translated: lady.                codemadness.org        70
          130 i* Rook = Toren (R -> T), translated: tower.                codemadness.org        70
          131 i* Bishop = Loper (B -> L), translated: walker.                codemadness.org        70
          132 i* Knight = Paard (N -> P), translated: horse.                codemadness.org        70
          133 i                codemadness.org        70
          134 i                codemadness.org        70
          135 i# Example script to stream games from Lichess                codemadness.org        70
          136 i                codemadness.org        70
          137 iThere is an included example script that can stream Lichess games to the                codemadness.org        70
          138 hterminal. It uses the »Lichess API«.  It will display the board using terminal        URL:https://lichess.org/api        codemadness.org        70
          139 iescape codes. The games are automatically annotated with PGN notation and with                codemadness.org        70
          140 itext how a human would say the notation. This can also be piped to a speech                codemadness.org        70
          141 hsynthesizer like »espeak« as audio.        URL:https://github.com/espeak-ng/espeak-ng/        codemadness.org        70
          142 i                codemadness.org        70
          143 ipgn-extract is a useful tool to convert Portable Game Notation (PGN) to                codemadness.org        70
          144 iUniversal Chess Interface (UCI) moves (or do many other useful chess related                codemadness.org        70
          145 ithings!).                codemadness.org        70
          146 i                codemadness.org        70
          147 i                codemadness.org        70
          148 i# Example script to generate an animated gif from PGN                codemadness.org        70
          149 i                codemadness.org        70
          150 iTheres also an example script included that can generate an animated gif from                codemadness.org        70
          151 hPGN using »ffmpeg«.        URL:https://ffmpeg.org/        codemadness.org        70
          152 i                codemadness.org        70
          153 iIt creates an optimal color palette from the input images and generates an                codemadness.org        70
          154 ioptimized animated gif. The last move (typically some checkmate) is displayed                codemadness.org        70
          155 islightly longer.                codemadness.org        70
          156 i                codemadness.org        70
          157 i                codemadness.org        70
          158 i# References and chess related links                codemadness.org        70
          159 i                codemadness.org        70
          160 i* chess-puzzles source-code:                  codemadness.org        70
          161 h  https://www.codemadness.org/git/chess-puzzles/file/README.html        URL:https://www.codemadness.org/git/chess-puzzles/file/README.html        codemadness.org        70
          162 i                codemadness.org        70
          163 i* Lichess FEN puzzle database:                  codemadness.org        70
          164 h  https://database.lichess.org/#puzzles        URL:https://database.lichess.org/#puzzles        codemadness.org        70
          165 i                codemadness.org        70
          166 i* lichess.org:                  codemadness.org        70
          167 h  https://lichess.org/        URL:https://lichess.org/        codemadness.org        70
          168 i                codemadness.org        70
          169 i* SVG of the individual pieces used in fen.c:                  codemadness.org        70
          170 h  https://github.com/lichess-org/lila/tree/master/public/piece/cburnett        URL:https://github.com/lichess-org/lila/tree/master/public/piece/cburnett        codemadness.org        70
          171 i                codemadness.org        70
          172 i* pgn-extract:                  codemadness.org        70
          173 i  A great multi-purpose PGN manipulation program with many options:                  codemadness.org        70
          174 h  https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/        URL:https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/        codemadness.org        70
          175 i                  codemadness.org        70
          176 i  An example to convert PGN games to UCI moves:                  codemadness.org        70
          177 i  `pgn-extract --notags -Wuc`                codemadness.org        70
          178 i                codemadness.org        70
          179 i* Lichess API:                  codemadness.org        70
          180 h  https://lichess.org/api        URL:https://lichess.org/api        codemadness.org        70
          181 i                codemadness.org        70
          182 i* Stockfish:                  codemadness.org        70
          183 i  Strong open-source chess engine and analysis tool:                  codemadness.org        70
          184 h  https://stockfishchess.org/        URL:https://stockfishchess.org/        codemadness.org        70
          185 .