Code Monkey home page Code Monkey logo

tarrasch-chess-gui's People

Contributors

billforsternz avatar friscodelrosario avatar johncheetham avatar k0k0 avatar metiscus avatar ro0r 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  avatar  avatar

tarrasch-chess-gui's Issues

Icon file

Would it be possible to include an icon file somewhere here on github? I'm using Devuan and don't know of any way to select an icon from the .exe, for use on the launcher. But I can browse the file system for an icon file.

Context-clicking in the moves panel

I'd love the move symbols (! ? !? etc.) and the evaluation symbols (+- += etc.) to be in submenus after a context-click. Users have some scrolling to do in the context menu to reach the evaluation symbols, so a submenu would save some seconds. And if the move and evaluation symbols were in submenus, then submenus for standard editing (cut, copy etc), and variation editing (promote variation, delete variation, etc.) could also be submenued.

The text editing and variation editing commands have their keyboard shortcuts, yes, but chess writers spend more time with the mouse than other writers do. Mousing moves, and clicking in the move list at an annotation point, for instance.

Invalid PGNs are accepted

Steps:

  1. create a PGN file with the following contents:
[Variant "From Position"]
[FEN "5rk1/4R2R/5r2/8/8/8/5PPP/6K1 w - - 0 1"]

1. Rg7+
  1. FileOpen and select the file

What happens:

  • The file loads, the move list contains Reg7#

What should happen:

The program should either:

  • Refuse to load the file and display an error message
  • Load the file partially up to the invalid move, and optionally display an error message

When opening lattest update I get message "Cannot open c:\Program Files(x86)\Tarrasch\book.pgn_compiled for writing"

Installed your latest update. When opening program I get message "Cannot open c:\Program Files(x86)\Tarrasch\book.pgn_compiled for writing" Also can't make engine use the book.pgn at all. Kibitzer mode shows engine thinking of the normal book moves, but it never makes them. Also when making engine think for some number of seconds, I don't know which box to type in the time. There are two boxes that will accept different numbers. Why two boxes. I only need one that will accept 5, 10, 15, etc seconds.

[feature request] is it possible to add an arrow for suggested moves

Is it possible when the engine is kibitzing to show an arrow for the suggested next move on the playing side?

For example if it suggests for White to open up with King's pawn at E4, before the white move is made, it will show a green arrow pointing from the pawn in E2 towards E4.

It would make it much more user friendly when training if it's not really hard to implement.

thc.cpp warnings about int vs size_t

RE: Source code (tar.gz) [] (2021-01-21T04:21:20Z)
https://github.com/billforsternz/tarrasch-chess-gui/archive/refs/tags/tarrasch-v3.13b.tar.gz

I previously compiled this with g++-8 without warnings, but on a newer machine with g++-12 I received the following from make:

g++ -c -g -std=c++11 `wx-config --cxxflags` Tabs.cpp -o Tabs.o
g++ -c -g -std=c++11 `wx-config --cxxflags` thc.cpp -o thc.o
thc.cpp: In member function ‘void thc::ChessEvaluation::Planning()’:
thc.cpp:4481:15: warning: ‘void* memcpy(void*, const void*, size_t)’ reading 512 bytes from a region of size 256 [-Wstringop-overread]
4481 |         memcpy( king_ending_bonus_dynamic_white,
    |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4482 |                 king_ending_bonus_static,
    |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
4483 |                 sizeof(king_ending_bonus_dynamic_white) );
    |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
thc.cpp:4325:12: note: source object ‘king_ending_bonus_static’ of size 256
4325 | static int king_ending_bonus_static[] =
    |            ^~~~~~~~~~~~~~~~~~~~~~~~
thc.cpp:4484:15: warning: ‘void* memcpy(void*, const void*, size_t)’ reading 512 bytes from a region of size 256 [-Wstringop-overread]
4484 |         memcpy( king_ending_bonus_dynamic_black,
    |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4485 |                 king_ending_bonus_static,
    |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
4486 |                 sizeof(king_ending_bonus_dynamic_black) );
    |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
thc.cpp:4325:12: note: source object ‘king_ending_bonus_static’ of size 256
4325 | static int king_ending_bonus_static[] =
    |            ^~~~~~~~~~~~~~~~~~~~~~~~
g++ -c -g -std=c++11 `wx-config --cxxflags` TournamentDialog.cpp -o TournamentDialog.o
g++ -c -g -std=c++11 `wx-config --cxxflags` TrainingDialog.cpp -o TrainingDialog.o

Looking at the code you have

  • static int king_ending_bonus_static[] = { 8x8 array };
  • static int king_ending_bonus_dynamic_white[0x80];
  • static int king_ending_bonus_dynamic_black[0x80];

It seems you use the dynamic arrays with only actual squares, so I resized them to [0x40] and compiled without warnings.

$ diff thc.cpp.0 thc.cpp
4348,4349c4348,4349
< static int king_ending_bonus_dynamic_white[0x80];
< static int king_ending_bonus_dynamic_black[0x80];
---
> static int king_ending_bonus_dynamic_white[0x40];
> static int king_ending_bonus_dynamic_black[0x40];

And so far Tarrasch didn't crash. :)

File->Open gets a bug reported in Linux

Tarrasch v. 3.13b+
Ubuntu v. 20.04

Maybe there's a bug, but it doesn't affect usability.

*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

Enhancement request: Chess960 castling rules

I had hoped to use Tarrasch to analyze some Chess960 games. Because the start position is not standard, the header includes a FEN for the initial position. Like this:

[Event "Chess.com 960 friendly"]
[Site "Chess.com iPhone"]
[Date "2022.12.31"]
[Round "?"]
[White "dyado72"]
[Black "fizixgeek"]
[Result "1-0"]
[FEN "qrnknbbr/pppppppp/8/8/8/8/PPPPPPPP/QRNKNBBR w HBhb - 0 1"]
[WhiteElo "920"]
[BlackElo "1457"]

When I load in Tarrasch, it shows the standard opening position and can only play a few moves before reaching an illegal move and getting stuck.

This feature request is for support for FEN in .pgn headers.

another logical stuff

\src\thc.cpp line 7467 + 7817
should be probably &&
if( '1'<=dst_rank || dst_rank<='8' )

Game window text highlight color should be a user setting, or at least changed

I don't care that I can't change text color in the moves window. (I use Sublime Text, for which a bajillion color schemes are available, so I get more than enough choices in changing text color). I even like the default blue. But the highlighted text color has to be made darker.

The text highlight is so light that the selected, reversed text can't be seen. If I can do that at the system level, I can't find it in Ubuntu or Elementary OS forums (where the users are all concerned with changing system colors).

Sure, the highlighted text is only unreadable until any user action undoes the highlight, but while editing text, a writer will sit and stare at highlighted text for minutes, because that's the text he's thinking about changing.

Screenshot from 2020-09-04 02 20 53

Em dash causes exception in Linux

Rather than learn the Unicode for an em dash ( — ) , or even modify my keys to type one, I copy/paste one from a bookmark tag. This throws an exception.

No problem to use a different character in place of the em dash, and edit
Screenshot from 2020-09-03 00 53 39
later.

Text is blurry with Windows high DPI scaling.

I have the "change the size of text, apps, and other items" option on Windows 11 at 125% and it causes the text in the program to be slightly blurred. Setting "Tarrasch.exe"->"Properties"->"Compatibility"->"Change high DPI settings"->"Override high DPI scaling behavior" to "Application" fixes this, but makes the icons smaller.

UI improvements

I have a few suggestions for making a nicer UI:

A) Use nicer icons.

There are many many nice icon packs around nowadays, many are SVG so they could be rasterized / rendered to any size. It would be nice to use some nice modern high-res ones. Just googling:

Ionicons - Flat Icons - Font Awesome - FontEllo - Icomoon (all free for OSS & commercial use, AFAICT)

If you have some custom icons you'd like to use, maybe you could even get them crowd sourced by a generous designer.

B) Allow more font options

Currently there seems to be only "Use larger font in move window". It would be nice to be able to select a font using a font dialogue, and especially a font size. In this image,

tarrasch fonts

You can see the font for "2 book moves" in the green button looks horrible, and I don't think the small bolded font for the moves is especially readable. You could either look to implementing the nicest default fonts for modern OS's (e.g Windows uses Segio UI for most stuff) and/or have a default font, you can get plenty of free/OSS ones from Google Fonts

C) Allow the move listing window to list fonts numbered down the page orderly, like

  1. e4 e5
  2. Nf3 Nc6
  3. Bc4 Bc5

etc, with sub-lines coming up in between the main lines, perhaps slightly indented. E.g you can see BabasChess using this style here.

Cheers, happy new year

support chinese

Tarrasch is a great chess gui.
Is there any plan to support chinese character?
thx a lot.

The Initial setup step dialogues are unresponsive

It's almost impossible to move the dialogue around, interact with it, click on close or cancel etc, ALT+TAB back and forth between it and other windows, while it is working.

Maybe it is a situation where the work could be done on a separate thread, so the GUI dialogue itself remains responsive? (I am guessing at a solution)

For now it's sort of off-putting for a new user, when they first start the program up, and this dialogue is there but seems to be non-interactable.

You may also want to have a Wizard-style "first run" dialogue, or just something to say "Tarrasch is now going to generate a whole lot of stuff on its first run, please be patient" to inform the user why this big load is going to happen / happening.

Make broke on Ubuntu 18.04 install

frisco@galliumos:~/tarrasch-chess-gui$ make
make -C src
make[1]: Entering directory '/home/frisco/tarrasch-chess-gui/src'
g++ -c -g -std=c++11 wx-config --cxxflags Book.cpp -o Book.o
g++ -c -g -std=c++11 wx-config --cxxflags MemoryPositionSearch.cpp -o MemoryPositionSearch.o
g++ -c -g -std=c++11 wx-config --cxxflags ClipboardDialog.cpp -o ClipboardDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Tabs.cpp -o Tabs.o
g++ -c -g -std=c++11 wx-config --cxxflags PositionDialog.cpp -o PositionDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Database.cpp -o Database.o
g++ -c -g -std=c++11 wx-config --cxxflags PgnDialog.cpp -o PgnDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags PgnFiles.cpp -o PgnFiles.o
g++ -c -g -std=c++11 wx-config --cxxflags GamePrefixDialog.cpp -o GamePrefixDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Session.cpp -o Session.o
g++ -c -g -std=c++11 wx-config --cxxflags GameDetailsDialog.cpp -o GameDetailsDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags PopupControl.cpp -o PopupControl.o
g++ -c -g -std=c++11 wx-config --cxxflags WinUciInterface.cpp -o WinUciInterface.o
g++ -c -g -std=c++11 wx-config --cxxflags GameView.cpp -o GameView.o
g++ -c -g -std=c++11 wx-config --cxxflags DbPrimitives.cpp -o DbPrimitives.o
g++ -c -g -std=c++11 wx-config --cxxflags PackedGameBinDb.cpp -o PackedGameBinDb.o
g++ -c -g -std=c++11 wx-config --cxxflags BookDialog.cpp -o BookDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags CompactGame.cpp -o CompactGame.o
g++ -c -g -std=c++11 wx-config --cxxflags MoveTree.cpp -o MoveTree.o
g++ -c -g -std=c++11 wx-config --cxxflags PlayerDialog.cpp -o PlayerDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags PatternDialog.cpp -o PatternDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags TrainingDialog.cpp -o TrainingDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Atom.cpp -o Atom.o
g++ -c -g -std=c++11 wx-config --cxxflags BinDb.cpp -o BinDb.o
g++ -c -g -std=c++11 wx-config --cxxflags main.cpp -o main.o
g++ -c -g -std=c++11 wx-config --cxxflags MonitorUsagePattern.cpp -o MonitorUsagePattern.o
g++ -c -g -std=c++11 wx-config --cxxflags Undo.cpp -o Undo.o
g++ -c -g -std=c++11 wx-config --cxxflags GamesDialog.cpp -o GamesDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags GameDocument.cpp -o GameDocument.o
g++ -c -g -std=c++11 wx-config --cxxflags CompressMoves.cpp -o CompressMoves.o
CompressMoves.cpp: In member function ‘std::__cxx11::string CompressMoves::ToNaturalMoves(const string&, const string&)’:
CompressMoves.cpp:417:13: error: ‘_itoa’ was not declared in this scope
_itoa(nbr++, buf, 10);
^~~~~
Makefile:10: recipe for target 'CompressMoves.o' failed
make[1]: *** [CompressMoves.o] Error 1
make[1]: Leaving directory '/home/frisco/tarrasch-chess-gui/src'
Makefile:6: recipe for target 'srccode' failed
make: *** [srccode] Error 2

CompressMoves.cpp:417:13: error: ‘_itoa’ was not declared in this scope

Hello,

I tried to compile it in Ubuntu 18.04, Ubuntu 16.04 and the latest Linux Mint version but I get this error:

g++ -c -g -std=c++11 wx-config --cxxflagsCompressMoves.cpp -o CompressMoves.o CompressMoves.cpp: In member function ‘std::__cxx11::string CompressMoves::ToNaturalMoves(const string&, const string&)’: CompressMoves.cpp:417:13: error: ‘_itoa’ was not declared in this scope _itoa(nbr++, buf, 10); ^~~~~ Makefile:10: recipe for target 'CompressMoves.o' failed make[1]: *** [CompressMoves.o] Error 1 make[1]: Leaving directory '/home/peter/sources/tarrasch-chess-gui/src' Makefile:6: recipe for target 'srccode' failed make: *** [srccode] Error 2
Any suggestions?

Make Kibitzer have an easy to see & use / prominent, on /off state

My main use for a chess GUI is casually analysing games and moves to find out reasoning behind moves or moves-that-weren't-made. Or even run an engine on a current position in a live classic-time game that's happening between top players, for example.

For this, starting and stopping a kibitzer on a position is one of my biggest use cases.

Suggestions:

A) In general, maybe the GUI buttons could be larger. An option for their size would be even better. People with different DPI monitors might want larger or smaller buttons purely for readability / clickability as well

B) Have the kibitzer button have a visible [activated / deactivated] state, i.e pressed or not pressed, etc. To show when the engine is running or not.

C) Perhaps have a button to "Start kibitzer" in the Start area (next to "Setup Position" "Play White", "Play Black", etc)

Lastly, I know many people not familiar with computer chess can tend to have no idea what the term "kibitzer" means, it can be confusing to them. It maybe be more recognisable to replace it with "Engine" or even the name of the engine that will run.

E.g, "Run Stockfish", "Stop Stockfish", etc.

Moving backwards in main line not working

I'm using the no-install version Tarrasch V3.10c on Windows.

For some PGN files, I'm unable to move backward through the game, whether I use the up-arrow key, scroll up on my mouse wheel, or click the Backward (main line) button on the toolbar. Here's a small PGN file that triggers the bug, from Chess.com machine analysis of the newly released AlphaZero games:
test.txt

For this file, if I'm on any of the moves 5...Bxc3, 6. Qxc3, or 6...a5, I'm unable to go backwards. However, if I edit the PGN file and delete one of the sub-variations for these moves, such as (5. e3) on line 15, I'm able to move backwards from 5...Bxc3 to 5. a3, so I suspect something with the two sets of parentheses isn't being handled correctly.

Color/size preferences don't persist in Linux

Tarrasch v. 3.12b
Elementary OS 18.04.4 LTS
Linux 5.4.0-42-generic

Changes made in Options -> General don't persist in next session.

No problem redoing them each time, but in at least one case, there are very many.

Position evaluation symbols in click menu could be laid out in numerical order

The position evaluation symbols are laid out:

=
+=
=+
+/-
-/+
+-
-+

I get lost in this layout, because in my head, the symbols are on a number line: -n -+ -/+ =+ = += +/- +- +n, so my mouse instinct scrolls toward the top of the menu for +- but finds =.

I consulted the NAG chart, and I see that you're following that scheme, so I can't use that to support me. But do you agree that if we placed the evaluation symbols over a line representing computer evaluations of a position, it would look like -+ -/+ =+ = += +/- +- .

Fixed time feature

I've played around seriously with chess computers/programs since the 1980's. One feature I really liked on all those machines was the "fixed think time" for the computer feature. I could easily check my progress as a chess player by starting off letting the machine think for say, 5 seconds. After I had a lot of fun beating it at that level I went to 10 seconds, etc. Eventually on the stronger computers and programs I stalled out at about 3 minutes computer think time. Of course I took all the time I needed. It was a lot of fun. Hardly real world tournament conditions, but a great learning tool. I think your program would benefit greatly if the human, especially beginners, was allowed to set the think time for the machine. Forget about tournament play and just seek the highest think time you can consistently beat the machine is great fun. Sounds like it would not be too difficult to implement that feature in your great little program!

Engine UI and auto-suggest are specific to Windows

The Engines window says look for an .exe, which doesn't apply to Mac and Linux users. And when the user goes to Browse to connect to an engine, the auto-hint is a Windows path.

Mac and Linux users are used to this, so bottom of the 'to do' list.

Minor display issue with long engine name

Hello!

It isn't very important, but I would like to report a little display issue with long engine names. Please take a look at the attached screenshot.

Regards.

Roland
tarrasch-313b

Several functions can access memory through invalid pointers

I apologize if any of this is out of place. I was bored tonight and decided to run some static analysis on the code. This is an awesome piece of software and thank you very much for your hard work.

It would appear that under certain circumstances GameDocument::GetSummaryXX can return a pointer to temporary memory.

I snipped out the relevant section and annotated it in the following attachment.
GameDocument.txt

PanelBoard also seems to have an issue with the invalidation of c_str returns due to the overload.
void PanelBoard::SetBoardTitle()
{
SetBoardTitle( m_title_saved.c_str() );
}

SetBoardTitle(const char*) then assigns its parameter to a new std::string and then assigns that string to m_title_saved which invalidates the parameter. It then proceeds to reference the invalidated parameter despite it being invalidated by the assignment operator to m_title_saved. I have opened a pull request against this one.

It also appears that it is possible for the const char* values returned by PackedGameBinDb to be used after delete. The c_str() return value is invalidated on the next non const call. While the functions return c_str from the string pool I am not familiar enough with the use of those to know if it is really an issue or not particularly if this data is sent into the gui (which may either copy it or keep it). This one may not be a real huge issue.

Make broken in Ubuntu 20.04.5

friscodelrosario@friscodelrosario-520-1047c:/tarrasch-chess-gui$ sudo make
make -C src
make[1]: Entering directory '/home/friscodelrosario/tarrasch-chess-gui/src'
g++ -c -g -std=c++11 wx-config --cxxflags LogDialog.cpp -o LogDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags thc.cpp -o thc.o
g++ -c -g -std=c++11 wx-config --cxxflags ClipboardDialog.cpp -o ClipboardDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Tabs.cpp -o Tabs.o
g++ -c -g -std=c++11 wx-config --cxxflags PositionDialog.cpp -o PositionDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags PatternDialog.cpp -o PatternDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags PgnDialog.cpp -o PgnDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Database.cpp -o Database.o
g++ -c -g -std=c++11 wx-config --cxxflags Lang.cpp -o Lang.o
g++ -c -g -std=c++11 wx-config --cxxflags Eco.cpp -o Eco.o
g++ -c -g -std=c++11 wx-config --cxxflags GamePrefixDialog.cpp -o GamePrefixDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Session.cpp -o Session.o
g++ -c -g -std=c++11 wx-config --cxxflags GameDetailsDialog.cpp -o GameDetailsDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags PopupControl.cpp -o PopupControl.o
g++ -c -g -std=c++11 wx-config --cxxflags WinUciInterface.cpp -o WinUciInterface.o
g++ -c -g -std=c++11 wx-config --cxxflags GameView.cpp -o GameView.o
g++ -c -g -std=c++11 wx-config --cxxflags PackedGameBinDb.cpp -o PackedGameBinDb.o
g++ -c -g -std=c++11 wx-config --cxxflags BookDialog.cpp -o BookDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags CompactGame.cpp -o CompactGame.o
g++ -c -g -std=c++11 wx-config --cxxflags Book.cpp -o Book.o
g++ -c -g -std=c++11 wx-config --cxxflags TrainingDialog.cpp -o TrainingDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags Atom.cpp -o Atom.o
g++ -c -g -std=c++11 wx-config --cxxflags UnixUciInterface.cpp -o UnixUciInterface.o
g++ -c -g -std=c++11 wx-config --cxxflags BinDb.cpp -o BinDb.o
g++ -c -g -std=c++11 wx-config --cxxflags CentralWorkSaver.cpp -o CentralWorkSaver.o
g++ -c -g -std=c++11 wx-config --cxxflags MoveTree.cpp -o MoveTree.o
g++ -c -g -std=c++11 wx-config --cxxflags MonitorUsagePattern.cpp -o MonitorUsagePattern.o
g++ -c -g -std=c++11 wx-config --cxxflags main.cpp -o main.o
g++ -c -g -std=c++11 wx-config --cxxflags GamesDialog.cpp -o GamesDialog.o
g++ -c -g -std=c++11 wx-config --cxxflags GameDocument.cpp -o GameDocument.o
g++ -c -g -std=c++11 wx-config --cxxflags CompressMoves.cpp -o CompressMoves.o
CompressMoves.cpp: In member function ‘std::string CompressMoves::ToNaturalMoves(const string&, const string&)’:
CompressMoves.cpp:417:13: error: ‘_itoa’ was not declared in this scope
417 | _itoa(nbr++, buf, 10);
| ^~~~~
make[1]: *** [Makefile:10: CompressMoves.o] Error 1
make[1]: Leaving directory '/home/friscodelrosario/tarrasch-chess-gui/src'
make: *** [Makefile:6: srccode] Error 2
friscodelrosario@friscodelrosario-520-1047c:
/tarrasch-chess-gui$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal

Engine evaluation of a current position for both sides

I've recently discovered this gui and wonder if there's a way to set up a position and evaluate it for both sides?

I guess it's only possible to start engine analysis and evaluate possible lines and for a side which is about to move (e.g. for white on screenshot below).

Screenshot_4

How do I quit the current engine?

I am developing my own engine and communicating with Tarrasch with UCI.

How do I instruct Tarrasch to send a QUIT command to my engine?

Without that, the executable keeps running and I need to kill it manually before I can compile a new one.

(Linux) No field for selecting engine in Engine panel

Linux kernel: 4.16.18-galliumos
OS: Xubuntu

Pulled down Options -> Engine
Expect field for selecting engine
Got nothing

What an odd little glitch. Worked around it by editing Tarrasch.ini, so no problem, just another weird Linux interaction to add to our growing collection.

Screenshot_2021-02-16_19-59-14

Insert null move

For annotators, it's nice to have the ability to insert a null move. Say you want to show the result of a threat if it's carried out.

If you want that note before the actual move played (after White's 26th move, you want to say ahead of Black's move: "White threatens 27. Qxa7!, and then if 27...Rxa7, blah blah blah), you have to mouse in a dummy move (like 26...Kg8-h8 if that doesn't affect the position) before mousing the rest of your variation.

The drawbacks there are that 1) You have to remember to edit the dummy move out of the text before publishing, and 2) you don't like sharing the PGN because how do you explain 26...Kg8?

Some packages give you an "insert null move" option for Black's 26th move. Engine users can then see analysis as though Black passes move 26, and White gets to carry out the deadly threat at move 27.

(This was actually a huge improvement in Deep Blue toward the end of its life. I don't know how they handled that kind of analysis before they implemented null moves. It's how humans ought to think at the board. When the opponent moves, you should ask yourself "what if I did nothing about that, and went ahead with my own schemes?" and the way to calculate that is to imagine yourself passing your move. Similarly, when humans are considering a move that threatens, they have to imagine the opponent making a null move to see if the threat actually gets anywhere.)

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.