Let's renew the puzzle collection. We'll produce a collection of new puzzles out of the lichess game database.

Overview

lichess puzzler

Let's renew the puzzle collection. We'll produce a collection of new puzzles out of the lichess game database.

We need a program that generates puzzles, and one that allows manual validation and categorization of each and every puzzle.

Generator

Use stockfish and database.lichess.org to produce puzzle candidates. Python is probably the language of choice because of https://github.com/niklasf/python-chess

The generator posts candidates to the validator.

Validator

Stores puzzle candidates and lets people review them with a web UI.

mongodb puzzle:

{
  _id: 1, // incremental
  createdAt: date,
  gameId: string,
  fen: string,
  ply: number,
  moves: [uci],
  review: { // after a review was done
    at: date,
    score: 0-5, // quality
    rating: 1200 // estimated rating
    topics: [string],
  }
}
You might also like...
Simple RGB to HEX game made in python
Simple RGB to HEX game made in python

Simple RGB to HEX game made in python

A collection of common regular expressions bundled with an easy to use interface.

CommonRegex Find all times, dates, links, phone numbers, emails, ip addresses, prices, hex colors, and credit card numbers in a string. We did the har

Finds price floor for every single attribute in a given collection

Solana Solanart Scanner Enjoy the Free Code Steps to run Download VS Code

Simple collection of GTPS Flood in Python.

GTPS Flood Simple collection of GTPS Flood in Python. NOTE Give me credit if you use this source, don't trade/sell this tool, And USE AT YOUR OWN RISK

A collection of custom scripts for working with Quake assets.

Custom Quake Tools A collection of custom scripts for working with Quake assets. Features Script to list all BSP files in a Quake mod

A collection of resources/tools and analyses for the angr binary analysis framework.

Awesome angr A collection of resources/tools and analyses for the angr binary analysis framework. This page does not only collect links and external r

Modest utility collection for development with AIOHTTP framework.

aiohttp-things Modest utility collection for development with AIOHTTP framework. Documentation https://aiohttp-things.readthedocs.io Installation Inst

Collection of code auto-generation utility scripts for the Horizon `Boot` system module

boot-scripts This is a collection of code auto-generation utility scripts for the Horizon Boot system module, intended for use in Atmosphère. Usage Us

Airspy-Utils is a small software collection to help with firmware related operations on Airspy HF+ devices.

Airspy-Utils Airspy-Utils is a small software collection to help with firmware related operations on Airspy HF+ devices on Linux (and other free syste

Comments
  • Avoid 3-fold repetitions

    Avoid 3-fold repetitions

    See https://github.com/ornicar/lichess-puzzler/commit/3e3377e3ea576785126780c7c7a9291b37c46453 for a clean diff

    The transition to a class isn't really necessary but I thought it would be useful for this at first.

    opened by benediktwerner 1
  • Added additional docstrings

    Added additional docstrings

    Hi,

    I created some docstrings for the util functions. It think it's a good first step to get familiar with the code base, and it might help others who are trying to do the same. I only did those so far, because I wanted to get some feedback before investing to much time.

    • Is it useful to invest the time, or will there be little added value. In that case, I'll just focus on understanding the code.
    • Is the Google docstring format used the format we would like? (https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
    • Is the quality of the docstrings what you expect it to be?

    Of course, I'll probably get some stuff wrong along the way, so someone will have to spend some time on reviews as well. Let me know if you want me to continue on the rest of the code.

    Kind regards, Kasper

    opened by KasperDeBlieck 1
  • 3fold repetition: Fix generation

    3fold repetition: Fix generation

    #9 Uses fen method which includes the move number, so positions are never equals.

    Also close https://github.com/ornicar/lichess-puzzler/issues/8 too

    Some tests are failing test_puzzle_4, test_puzzle_15 randomly. test_puzzle_6 always fails for unknown reasons. These failing tests are an issue unrelated to this change though.

    opened by kraktus 0
  • skip positions that look like they have more castling rights

    skip positions that look like they have more castling rights

    @370417:

    The intended solution to /training/oESSu only makes sense if you happen to know that white can't castle. Is that grounds for removal? (https://lichess.org/forum/lichess-feedback/httpslichessorgtrainingoessu)

    Applied retroactively this would exclude 14k of the 1.8 million existing puzzles.

    opened by niklasf 0
Owner
Thibault Duplessis
Maker of lichess.org, a hippie communist chess server for drug fueled atheists.
Thibault Duplessis
Tool to produce system call tables from Linux source code.

Syscalls Tool to generate system call tables from the linux source tree. Example The following will produce a markdown (.md) file containing the table

null 7 Jul 30, 2022
Attempts to crack the compression puzzle.

The Compression Puzzle One lovely Friday we were faced with this nice yet intriguing programming puzzle. One shall write a program that compresses str

Oto Brglez 14 Dec 29, 2022
MongoDB utility to inflate the contents of small collection to a new larger collection

MongoDB Data Inflater ("data-inflater") The data-inflater tool is a MongoDB utility to automate the creation of a new large database collection using

Paul Done 3 Nov 28, 2021
New time-based UUID formats which are suited for use as a database key

uuid6 New time-based UUID formats which are suited for use as a database key. This module extends immutable UUID objects (the UUID class) with the fun

null 26 Dec 30, 2022
This utility lets you draw using your laptop's touchpad on Linux.

FingerPaint This utility lets you draw using your laptop's touchpad on Linux. Pressing any key or clicking the touchpad will finish the drawing

Wazzaps 95 Dec 17, 2022
This tool lets you perform some quick tasks for CTFs and Pentesting.

This tool lets you convert strings and numbers between number bases (2, 8, 10 and 16) as well as ASCII text. You can use the IP address analyzer to find out details on IPv4 and perform abbreviation as well as expansion on IPv6 addresses.It can also perform a two's complement calculation as well.

Ayomide Ayodele-Soyebo 1 Jul 16, 2022
Color getter (including method to get random color or complementary color) made out of Python

python-color-getter Color getter (including method to get random color or complementary color) made out of Python Setup pip3 install git+https://githu

Jung Gyu Yoon 2 Sep 17, 2022
extract gene TSS/TES site form gencode/ensembl/gencode database GTF file and export bed format file.

GetTsite python Package extract gene TSS/TES site form gencode/ensembl/gencode database GTF file and export bed format file. Install $ pip install Get

laojunjun 7 Nov 21, 2022
Hide new MacBook Pro notch with black wallpaper.

Hide new MacBook Pro notch with black wallpaper.

Wang Chao 1 Oct 27, 2021
A library for interacting with Path of Exile game and economy data, and a unique loot filter generation framework.

wraeblast A library for interfacing with Path of Exile game and economy data, and a set of item filters geared towards trade league players. Filter Ge

David Gidwani 29 Aug 28, 2022