GithubHelp home page GithubHelp logo

drsegmcfault / sukless2 Goto Github PK

View Code? Open in Web Editor NEW
2.0 6.0 0.0 648 KB

The successor to the failed project sukless-chess

CMake 1.45% C++ 83.33% QML 15.22%
bitboard chess chess-engine chess-game magic-bitboards chess-application

sukless2's Introduction

Sukless2

A successor to the failed project sukless-chess, Sukless2 is a magic bitboard chess engine written in C++. It aims to be a beautiful, readable, and (relatively) fast chess engine.

image

Why?

There are many open source chess engines, some of them use magic bitboards, but none that I have seen are easily readable. Sukless2 aims to change that. Sukless2 isn't stockfish and will never be. The goal of this project (stated above) is to make an easily readable bitboard chess engine written in C++.

Future Plans

The hope is that sukless2 will eventually be seperated into client and server applications

Building sukless2

  1. install Qt and QtCreator
  2. figure it out

sukless2's People

Contributors

drsegmcfault avatar pmorr avatar thuney avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

sukless2's Issues

design new user interface

We need a new UI designed. Here are things that are required:

  1. on start up, we need a menu to select the difficulty of the AI, or if you want to play a real person over the internet
  2. on the right or left side, we need the list of moves that have occurred in the game.
  3. on the top right or top left, we need the two move clocks
  4. on the left or right side, we need engine suggestions, and a toggle to enable them if the user is playing against an AI
  5. a settings menu to change the color of the board, the pieces, and the orientation of the board

Finish FEN utilities

BoardManager::init_from_fen is incomplete, it needs to get the castling rights, full move count, half move count, and the en passant target square from the string and set the state variables accordingly.

there also needs to be a generate_fen function that generates the FEN string from a given board

for more information on FEN visit https://en.wikipedia.org/wiki/Forsyth–Edwards_Notation

MoveGenerator members should be vectors

The MoveGenerator class members are eating up stack space, to the point were a flag needs to be passed to the MSVC linker in order for the program to run. investigate weather all of the members need to be vectors or if just the bishop and rook tables need to be vectors

Write tests

We need tests for every part of the BoardManager class, using a framework like catch2 or something so it is easy to tell when a breaking change occurred

Get project building with GCC and MSVC

Currently only clang is supported because of the -f-constexpr-steps flag in the cmake. Need to find the gcc and MSVC equivalents so that those compilers can be used. There may a bunch of other issues with those compilers as well

Use a different UI library

I would like to try out a different UI framework, preferably one that is much easier to use than SDL. Something like Qt would be nice. Im open to anything easier than SDL

add Checkmate, draw by repetition, etc

Need to check for and return the Checkmate MoveResult, as well as all the others, currently its only success or illegal.
Also need to add history so the user can go back in forth in time and look at the game.
Also need to add move history to be displayed in the new UI

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.