Giter Site home page Giter Site logo

swtchess's Introduction

SWT GUI for analysing chess games with UCI engines.

The ChessBoardWidget is a resizable SWT widget, which only allows input of legal moves via drag and drop. Mouse wheel may be used to rewind moves.

EngineWidget can start/stop a UCI engine. Number of best lines shown can be configured through +/- Buttons.

The main class is Chess (in package swtchess).

Engine executable and parameters may be supplied via command line arguments, or hardcoded in the Chess class.

Screenshot 1

Known limits

Only promotion to queen is implemented. The game will always start from starting position.

Make sure the png files for the pieces are on the classpath.

This project was made possible by:

https://github.com/PrivateEvgeny/chess (basis for SWT chessboard drawing code enhanced with double buffering of the canvas, and drag and drop for pieces)

https://github.com/jvarsoke/ictk (MIT license, used for legal move generation, starting position, FEN logic etc)

https://github.com/nomemory/neat-chess (UCI protocol logic, extended by infinite analysis, stop command)

https://github.com/cjbolt/EubosChess (Engine used for testing)

https://github.com/official-stockfish/Stockfish (Engine used for testing)

https://wikipedia.org (png files of chess pieces)

TODO / ideas for improvements

  • Popup dialog when promoting pawn
  • File dialog for selecting engine executable from filesystem
  • Ability to run multiple engines at the same time
  • Mode for setting up arbitrary board positions
  • Ability to flip the board
  • Highlight last move, add a side-to-move icon etc
  • Pretty print of engine moves (algebraic notation)
  • Show available moves when clicking a piece
  • Entering moves by clicking on source and target square.

swtchess's People

Contributors

andreasvida avatar

Watchers

 avatar

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.