Coder Social home page Coder Social logo

ml-research / liground Goto Github PK

View Code? Open in Web Editor NEW
96.0 12.0 33.0 17.31 MB

A free, open-source and modern Chess Variant Analysis GUI for the 21st century

Home Page: https://ml-research.github.io/liground.github.io/

License: GNU Affero General Public License v3.0

JavaScript 20.62% CSS 20.04% Vue 59.15% EJS 0.19%
chess gui crazyhouse chess-variants lichess chessground uci chess-engine vue electron-app

liground's People

Contributors

bingobongomann avatar bododb avatar dacre01 avatar dependabot[bot] avatar goekaykaraahmetli avatar ianfab avatar ijhchess avatar leiflion avatar lucylmm avatar magehrke avatar martinruz avatar ptrmdr avatar queensgambit avatar samuelgjd avatar xiaoyifang avatar zerthox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

liground's Issues

Delete Boards

When creating a new board the old one should be deleted, to avoid memory leaks.

Selected PGN

Changing the variant, resetting the board etc after a PGN is loaded will still show the PGN as selected.

Loading PGN with different Variant

As mentioned in #76, loading a PGN with a different variant than the currently selected one doesn't update the board & move history.
To reproduce change the variant to anything else and load a Standard chess PGN. The board will stay at the starting FEN and the move history will remain empty.

Engine Settings - US_5

Description:
As a user I want to be able to change the engine settings to be able to use it to its fullest extend.

Acceptance Criteria:
The engine settings can be adjusted in a separate window. The changed settings will be submitted to the engine.

Variant rules in menu bar

The menu bar should have an option to open a tab that explains the rules of the currently selected variant

960 Mode - US_19

Description: As user i want to be able to click a button to choose a 960 variant.
Acceptance criteria: When clicking the 960 button you get a text input which accepts numbers in [0,959] and returns the corresponding 960 starting position.

Game Navigation using buttons - US_7

Description:
As a user i want to use the arrow buttons to move a turn ahead/back or to jump to the start or end of the match.

Acceptance Criteria:
At every point in time I am able to use the following:
To jump at the beginning of the selected variant. If the position is the starting position then the button is greyed out and not selectable.
To jump at the end of the path history. If the position is the end position then the button is greyed out and not selectable.
To jump a turn back. If it is not possible to jump a turn back then the button is greyed out and not selectable.
To jump a turn ahead. If it is not possible to jump a turn back then the button is greyed out and not selectable.

FEN

Currently Shogi and 960 do not work due to the removal of ffish-es6.

FEN Loading

It should be possible to load a certain position using an FEN which you can paste in the text box below the board.

Expert Mode

Optional expert mode with access to a console for direct engine communication via UCI

Menu Bar - US_3

Description:
As a user i want to select the elements of the menu bar in order to use the provided functionalities.

Acceptance Criteria:
The menu bar consists of the following buttons Game, Engines, Settings and About. The About button links to https://github.com/ml-research/liground

Evaluating PGN

It should be possible to load a PGN, then evaluate the board positions and display them in the EvalPlot with a seperate engine instance.

Keep going!

Putting down an issue to just tell you guys to keep at it. The chess community is in sore need of a modern GUI, not one that has not been refactored since the 90s. Do you guys mind if I post this repo around, or is that against the rules of the project? I saw the link you guys put in the lichess discord so I know this is a school thing.

Engine and Variants

When changing the variant the program should automatically switch to the appropriate engine.

Last Move Selected

When moving back through the move history either by using the arrows or by clicking on the move, the squares for the actual last move is still highlighted.

Reset Function

A Button(or something else) should be implemented for resetting the board/history etc. while not changing the variant.

Duplicate piece styles

Changing piece style currently injects new CSS without removing the previously used style. This leads to unnecessary pollution of the document head and duplicate styles.

Example screenshot with "alpha" & "california" loaded multiple times after switching back & forth between them:
electron_LFHychWNKL

Alternate Paths - US_8

Description:
As a user I want to be able to create alternate paths to view and analyse them.

Acceptance Criteria:
There is a button to set the program to the 'Analysis Mode' in which alternative moves in the past are possible.
Alternative variants will be written in a new row, the previous variant will be continued in a new row after the current one. Alternative paths are color coded. Alternative paths that are not selected will only display their first move, further moves on that path will be shortened to '[...]'.

Sounds

Simple sounds should be played after moving a piece and a different sound for eliminating a piece

Save GUI information

After a restart of the program some/all of the previous selected options in the GUI should stay the same

Board Design and Variants - US_6

Description:
As a user I want to be choose between more variants to analyse them.

Acceptance Criteria:
Shogi, Xiangqi, Janggi, and Makruk are supported. These variants will be correctly displayed in the drop down menu and enable the user to switch between all available variants. If needed the chess board, engine and design will be adjusted to the chosen variant.

Interactive Evaluation Graph - US_11

Description:
As a user I want to be able to watch a graph displaying the match rating over time. So that i am able to see the match defining moves.

Acceptance Criteria:
The graph displays the point history of the current match supplied by the engine. When clicking on a point on the graph the position for this point will be loaded onto the board. The graph is zoomable.

Missing # Symbol

When ending the game using an alternate method then check mate, the # symbol is missing from the match history.

Engine control - US_18

Description: As "expert"-user I want an easy and flexible engine interface.
Acceptance criteria: name, author, options of the engine are loaded when starting Liground. When clicking the button "start engine" all the necessary data to calculate a move is sent to the engine. The returned lines are correctly displayed in the interface.When a move is played on the board, the engine receives the move and now starts calculating a move for the other side. Should the engine crash, the user receives the error report and has the option to restart the engine.

Can't build on Mac OS - Catalina

I'm getting the following error on Mac OS while building the app:

Error: Exit code: 2. Command failed: /usr/bin/perl /private/var/folders/99/yq4kk62j6ks2pmqh366mgyfj57twk_/T/t-XDp1ou/1-dmgProperties.pl
Can't locate Mac/Memory.pm in @INC (you may need to install the Mac::Memory module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at /private/var/folders/99/yq4kk62j6ks2pmqh366mgyfj57twk_/T/t-XDp1ou/1-dmgProperties.pl line 4.
BEGIN failed--compilation aborted at /private/var/folders/99/yq4kk62j6ks2pmqh366mgyfj57twk_/T/t-XDp1ou/1-dmgProperties.pl line 4.

Any thoughts on how to fix this?

Promoting pawns - US_20

Description: As user I want to be able to promote pawns according to chess rules.
Acceptance criteria: When promoting a pawn in international chess there is a visual option to choose any eligible piece and when selecting one of these the pawn is replaced by that piece.

Principal Variation Line Navigation - US_9

Description:
As a user I want to be able to select a PV-Line from the suggested lines of the running engine, to play that move on the board.

Acceptance Criteria:
When clicking on a PV-Line the first move of the line will be executed.
While hovering over a PV-Line will the first move of the line be visually marked on the board.

Match History Navigation

When using the scroll wheel while the cursor is on top of the board should cycle through the match history.

PGN Browser - US_4

Description:
As a user i want to see all of the matches of a single PGN file, so that I can choose any one of them.

Acceptance Criteria:
All of the included matches of the PGN file are visible and clickable. The chosen match and the accompanying metadata will be displayed correctly. The PGN Browser marks the currently selected match and it is possible to switch between the matches.
It is possible to continue playing the chosen match.

Bundle ffish in production

The ffish.wasm file is currently not bundled correctly by webpack.
During development this can be fixed by moving the file into the root project folder.
But in production the issue will result in ffish not being included in the build.

Universal Chess Interface Command Line - US_10

Description:
As a 'Expert' user I want to be able to communicate directly with the engine using the terminal and the UCI.

Acceptance Criteria:
Using a terminal user will be able to send commands to the engine directly. Only UCI commands are supported. The reply of the engine will be displayed in the terminal.

Pasting a new FEN

When pasting a new FEN in the right variant one should be able to start playing from the pasted FEN and otherwise get an error that either the FEN is invalid or the Variant is wrong

loading variants

When loading a pgn with a different variant the GUI dropdown list is not updated.
And when loading a pgn of a not supported variant maybe we should alert the user and not load the file.

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.