Electronic stores

Download the latest version


Forum - this is a good way to quickly report a bug or give some advice to improve it. Also, you can ask personal questions to the author.
Posts anonymous (unregistered) users will expect moderation (verification) by the board administrator. At that time, as registered users can instantly see your message without delay.

Go to forum

The name of program:

OpenKlest - a generic name of the program. It means that the source code it is the creative work of the laboratory and can be used to reproduce, modify, and further distribution without, in my hand, permit.

Policy of version numbering:

Version number a.b.c - a - a 2-fold increase in function (relative to 1.0.0), b - a major change (such as adding support for new file format), c - 10 small changes.


Developing the program Klest-crossword, with the transfer of source code to all interested parties - I heard one phrase and tighter. The phrase carried in itself a very strange sense of what the program Klest-crossword patented and alleged author of their changes to the program I would be lost.

Without thinking, I decided to go on an unprecedented step. The essence was to create a project-copy but with a different name and did not patent it at all. So I'd attract more people to the project, that there were no such fears. And those who received a code Klest-crossword puzzle, could make changes, but in another program. Thereby creating an atmosphere of complete tranquility of the people helping me.

To avoid future misunderstandings, I did not just change the title, while maintaining the source code to C++. I have done differently - rewrote part of the Klest-crossword puzzle in the language of Lazarus (FreePascal), which is the same as the Qt library is absolutely free. And now the project has many developers can grow at the expense of 2 languages to be used when writing a program.


"OpenKlest" - program to guess the classic crossword puzzles in format OpenKlest (*.ok). It is a copy of the program Klest-crossword rewritten in the language of Lazarus (FreePascal), to attract more developers.
Format OpenKlest (*.ok) - the interface between the two programs because, in Program Klest-crossword supports this format.
All Options:
  • - Guessing Crossword;
  • - Check correctness of guessing;
  • - Statistics;

  • Manuals (view):
  • Manuals (download):
  • The plans:

    It is planned to rewrite all functions of the program Klest-crossword to all comers (Qt/C++ and Delphi/Pascal) programmers could take part in the project for writing the best software for creating and guessing puzzles.

    New crosswords:

    New templates:

    Format Description OpenKlest:

    This binary file format crossword, which can be implemented in any programming language, including C++ and Delphi.
    //File version
    cFileBegin array[14] of char := 'OpenKlest-1.0~';

    //Number of rows crossword
    lwRowCount: Longword;

    //Number of columns crossword
    lwColumnCount: Longword;

    //Width (height) of the cell
    lwRowHeight: Longword;

    // If the cell is black
    ;(wcCell: WideChar) wcCell = 'b';

    // If the cell is white
    ;(wcCell: WideChar) wcCell = 'w';

    // Cycle from 0 to lwRowCount
    //Nested Cycle from 0 to lwColumnCount
    wCell: Word := Word(wcCell) + 1;

    //Number of words
    lwWordCount: Longword;

    //Coordinates of the line arrangement of words in the crossword grid;
    //Cycle from 0 to lwWordCount
    wWordRow: Word;

    //Column coordinate location of words in the crossword grid;
    //Cycle from 0 to lwWordCount
    wWordColumn: Word;

    // If the word vertical
    ;(wcDirection: WideChar) wcDirection = 'v';

    // If the word horizontal
    ;(wcDirection: WideChar) wcDirection = 'h';

    //Direction of words in the crossword grid;
    //Cycle from 0 to lwWordCount
    wWordDirection: Word := Word(wcDirection);

    //Length of words in the crossword grid;
    //Cycle from 0 lwWordCount
    wWordLength: Word;

    ;sWord: string;

    //Cycle from 0 to lwWordCount
    cWord: array[Length(sWord)] of char;

    //Length of the question;
    //Cycle from 0 to lwWordCount
    wQuestionLength: Word;

    ;sQuestion: string;

    //Cycle from 0 to lwWordCount
    cQuestion: array[Length(sQuestion)] of char;

    //Mark end of file
    cFileEnd: array[10] of char := '~OpenKlest';

    Lab Free Technologies © 2009 - 2016

    Useful links - Web humorist Mikhail Zadornov
    Kasta - Real russian rap! - Official Website Kasta group
    GNU / Linux Debian - Universal operating system, distribution OS Linux - Cross-platform library for programming in C++ - Find books in Russian shops - Find a book - Web-hosting, VPS-hosting - Forum of programmers and freelance exchange - Forum of programmers
    Mandriva Linux - A better operating system, distribution OS Linux
    Ubuntu Linux - Distribution OS Linux
    Fedora Linux - Distribution OS Linux
    Gentoo Linux - Distribution OS Linux
    Alt Linux - Distribution OS Linux
    FreeBSD - Unix-like OS
    IZONE - Software - Download program freeware
    freeSOFT - Free software downloads - The international online community CHIP Online - Free software
    PSLAN Torrent - P.S.Lan torrent tracker - Movies download (torrent tracker) - Download games consoles and emulators - Bookshop