Skip to content

Latest commit

 

History

History
101 lines (82 loc) · 3.91 KB

README.md

File metadata and controls

101 lines (82 loc) · 3.91 KB

Wize

Wize, a C++ UCI-compliant chess engine, integrates a neural network (NNUE) for accurate evaluation and employs a range of advanced search techniques like LazySMP and Multithreading within Alpha-Beta framework, Wize strives to be a top-tier engine but also serves as a valuable resource for developers to enhance their own chess engines.

Wize Chess Engine
Wize, Strong and Open Source Chess Engine Written in C++

Features

  • Architecture

    • Bitboard Representation
  • Search

    • Alpha-Beta Pruning
    • Negamax Framework
    • Transposition Tables
    • Principal Variation Search
    • Quiescence Search
    • Null-move Pruning
    • Internal Iterative Deepening
    • Aspiration Window
    • Repetition Detection
    • Killer Move, History
    • MVV-LVA Capture Ordering
    • LazySMP
    • Multithreading
    • Heuristic Moves
    • Polyglot Opening Book
  • Evaluation

    • NNUE Evaluation (Features=HalfKP(Friend)[41024->256x2],Network=AffineTransform[1<-32](ClippedReLU[32](AffineTransform[32<-32](ClippedReLU[32](AffineTransform[32<-512](InputSlice[512(0:512)]))))))

Improvements

  • Implement Syzygy Bases, SyzygyPath, ...
  • Improve the NN Structure

Current ELO

  • ELO: 2850-3000~

Requirements

  • Wize software requires GCC(GNU Compiler Collection) or CLang, C++ version: CXX >= C++17 !
  • It is recommended that the terminal uses a TrueType Font (ttf), Consolas and other monospaced fonts are recommended for the best user experience [Unicode characters and ANSI escape code] (However, most engines are linked directly to the GUI and don't really need to interact with the terminal).

Installation/Usage

Clone the repository:

$ git clone https://github.com/yanpuri/Wize.git

Then, in the directory:

$ cd Wize\Wize
$ make
$ Wize.exe

Run the generated .exe file in the install dir.

  • How to work the engine? The UCI (Universal Chess Interface) serves as a widely adopted protocol for interacting with a chess engine and is the preferred method for communication in graphical user interfaces (GUIs) and chess-related tools. The guidelines are outlined in the UCI protocol, which can be accessed and referenced at this link http://page.mi.fu-berlin.de/block/uci.htm

Images

Terminal interface

Terminal interface

Gameboard

Gameboard

Acknowledgements

Support Me

If you find RepoUp useful, consider supporting me by:

  • Starring the repository on GitHub
  • Sharing the tool with others
  • Providing feedback and suggestions
  • Follow me for more :)


For any issues or feature requests, please open an issue on GitHub. Happy coding!

octodance