Help us make Cute Chess GUI better

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

UncombedCoconut
Posts: 319
Joined: Fri Dec 18, 2009 11:40 am
Location: Naperville, IL

Re: Help us make Cute Chess GUI better

Post by UncombedCoconut »

I don't have strong preferences for many of these things, but
ilari wrote:3) Do you prefer to make your moves by dragging a piece, by clicking the source square and then the target square, by typing the move, or by using some other method?
Have you seen how Scid handles this? It allows all of these methods (and I use all of them, depending on circumstances). Note that you type moves into the board window, not the move list. I would take this as an ideal implementation. It's OK if version 1.0 only supports dragging. Thanks and good luck.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Help us make Cute Chess GUI better

Post by hgm »

I think that people that really want to use the GUI for entering moves would not be satisfied unless you can do both. There really is no conflict between the two methods: dragging would be assumed as default action on a button-press on a piece of the stm, but dragging it around (or not) and then releasing it on the original square can then be interpreted as a static click, selecting the piece.

Clicking on a new piece of the stm when another piece was already selected, should simply select (grab) the new piece. (Exception: if you want to allow KxR entry of Chess960 castling clicking R when K is selected should complete the move entry rather than selecting R). Clicking on the already selected piece could deselect it (although I never found this terribly useful).

Above is pretty much how WinBoard handles it; what WinBoard does not do, but what some people like, is 'reverse' move entry: allowing the user to click the to-square first (i.e. use a click on non-stm piece or empty square to select that square as to-square), and interpret a click on an stm piece when such a to-square is selected as completing the move entry. I guess this can also be added without conflict (unless you want to implement premove), never allowing the button press to grab empty or opponent pieces, but taking it as to-square selection signal.
stevenaaus
Posts: 608
Joined: Wed Oct 13, 2010 9:44 am
Location: Australia

Re: Help us make Cute Chess GUI better

Post by stevenaaus »

I had to comment out this statement from src/pgngame.cpp

Code: Select all

if (!ok || nag < 0 || nag > 255&#41; qDebug&#40;"Invalid NAG&#58; %s", qPrintable&#40;in.tokenString&#40;)));
Leaving it in gives this error:

Code: Select all

  g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W -D_REENTRANT -fPIC -DLIB_EXPORT= -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include -Isrc -Icomponents/json/src -I.moc -o .obj/pgngame.o src/pgngame.cpp
src/pgngame.cpp&#58; In member function ‘bool PgnGame&#58;&#58;read&#40;PgnStream&, int&#41;’&#58;
src/pgngame.cpp&#58;199&#58;32&#58; error&#58; ‘class QByteArray’ has no member named ‘toLocal8Bit’
make&#91;2&#93;&#58; *** &#91;.obj/pgngame.o&#93; Error 1
make&#91;2&#93;&#58; Leaving directory `/home/steven/Downloads/cutechess-cutechess-ea18b9d/projects/lib'
make&#91;1&#93;&#58; *** &#91;sub-lib-make_default-ordered&#93; Error 2
make&#91;1&#93;&#58; Leaving directory `/home/steven/Downloads/cutechess-cutechess-ea18b9d/projects'
make&#58; *** &#91;sub-projects-make_default&#93; Error 2
on my Fedora14 64 bit box. Otherwise it all seems to go fine after installing the libs.

QT is a lovely toolkit. I wonder if you can make the Game Database window docked in the main window. The easiest way is probably to make it tabbed alongside the main board ?
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Help us make Cute Chess GUI better

Post by ilari »

hgm wrote:I think that people that really want to use the GUI for entering moves would not be satisfied unless you can do both. There really is no conflict between the two methods: dragging would be assumed as default action on a button-press on a piece of the stm, but dragging it around (or not) and then releasing it on the original square can then be interpreted as a static click, selecting the piece.
Yes, that's how we'll do it. Right now only dragging is supported, but that's the difficult part. I was asking about the preference mainly to understand the typical user better, and also because I had a brief conversation about this with the other developer.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Help us make Cute Chess GUI better

Post by ilari »

stevenaaus wrote:I had to comment out this statement from src/pgngame.cpp

Code: Select all

if (!ok || nag < 0 || nag > 255&#41; qDebug&#40;"Invalid NAG&#58; %s", qPrintable&#40;in.tokenString&#40;)));
Leaving it in gives this error:

Code: Select all

  g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wall -W -D_REENTRANT -fPIC -DLIB_EXPORT= -DQT_NO_DEBUG -DQT_CORE_LIB -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include -Isrc -Icomponents/json/src -I.moc -o .obj/pgngame.o src/pgngame.cpp
src/pgngame.cpp&#58; In member function ‘bool PgnGame&#58;&#58;read&#40;PgnStream&, int&#41;’&#58;
src/pgngame.cpp&#58;199&#58;32&#58; error&#58; ‘class QByteArray’ has no member named ‘toLocal8Bit’
make&#91;2&#93;&#58; *** &#91;.obj/pgngame.o&#93; Error 1
make&#91;2&#93;&#58; Leaving directory `/home/steven/Downloads/cutechess-cutechess-ea18b9d/projects/lib'
make&#91;1&#93;&#58; *** &#91;sub-lib-make_default-ordered&#93; Error 2
make&#91;1&#93;&#58; Leaving directory `/home/steven/Downloads/cutechess-cutechess-ea18b9d/projects'
make&#58; *** &#91;sub-projects-make_default&#93; Error 2
on my Fedora14 64 bit box. Otherwise it all seems to go fine after installing the libs.
Thanks for the report. Most Qt installations convert QByteArrays automatically to QString instances when needed, which is why this error managed to escape us. But we'll fix this in no time.
stevenaaus wrote:QT is a lovely toolkit. I wonder if you can make the Game Database window docked in the main window. The easiest way is probably to make it tabbed alongside the main board ?
It certainly can be made dockable or into a tab in the main window. We'll consider this as we continue to refine the interface. It has a lot to do with menus - if we decide that the game database dialog needs its own menus, then it probably has to stay a window.
User avatar
GenoM
Posts: 910
Joined: Wed Mar 08, 2006 9:46 pm
Location: Plovdiv, Bulgaria

Re: Help us make Cute Chess GUI better

Post by GenoM »

Hi

I'm thinking about a feature in the chess GUI that will allow to play gauntlet vs. random opponents giving just the average rating of opponents. E.g. I want to play Sloppy vs. 5 opponents with an average rating of ~2600, and GUI chooses 5 engines w/2800, 2700, 2600, 2500, 2400 /or with 2700, 2650, 2600, 2550, 2500/. Having the possibility of setting a margin +- would be great /+-200 in the fist example and +-100 in the second example -- i'm so detailed just to explain what i mean because i'm afraid that my bad english will make my idea unclear/. Would be good to have a possibility of "trustable" rating: to assign number of games opponents have to have in such gauntlets. It would be a great time-saver :)

regards,
Geno
take it easy :)
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Help us make Cute Chess GUI better

Post by ilari »

GenoM wrote:Hi

I'm thinking about a feature in the chess GUI that will allow to play gauntlet vs. random opponents giving just the average rating of opponents. E.g. I want to play Sloppy vs. 5 opponents with an average rating of ~2600, and GUI chooses 5 engines w/2800, 2700, 2600, 2500, 2400 /or with 2700, 2650, 2600, 2550, 2500/. Having the possibility of setting a margin +- would be great /+-200 in the fist example and +-100 in the second example.
That would be a fun feature and quite easy to implement. I'll certainly consider it if I can make it work without cluttering the interface too much.
-- i'm so detailed just to explain what i mean because i'm afraid that my bad english will make my idea unclear/. Would be good to have a possibility of "trustable" rating: to assign number of games opponents have to have in such gauntlets. It would be a great time-saver :)

regards,
Geno
The more detail the better. And your English is fine.
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Help us make Cute Chess GUI better

Post by lucasart »

ilari wrote:A week ago me and Arto had a hackathon where we drank a lot of caffeine and laid out some plans for version 1.0 of Cute Chess GUI (for Windows, Linux and Mac). I'm happy to say that things are going quite well, even though it's impossible to guess how long it takes to do all the work that's left. We're trying to do what's right, not what's easy, and that's always time-consuming. The development can be followed at our Github page. As you can see by looking at the commit history, things are happening.

Anyway, making a good GUI involves a lot more design decisions than making a command line tool. So I'm asking you guys what you'd like to see in our GUI? I don't just mean features; I'd like to know what kind of workflows you prefer when you're playing, setting up a tournament, analyzing games or managing a game database, and what kind of default settings you prefer. If you can point to examples of other GUIs doing something particularly well or if there's something no GUI can do properly but you wish they could, I'd like to hear about it.

In addition to giving us any feedback or requests you can come up with, I'd appreciate if you could answer the following questions:

1) What time controls do you use the most?
2) Do you prefer to have the file letters and rank numbers visible or hidden?
3) Do you prefer to make your moves by dragging a piece, by clicking the source square and then the target square, by typing the move, or by using some other method?
4) Roughly how many engines do you have installed in your favorite GUI?
5) Do you use all your installed engines equally or do you have a few favorite engines that you use most of the time?
6) Do you have a favorite opening book that you use most of the time or do you alternate between multiple books?

Thank you and best regards,
Ilari
Hello Ilari,

I tried to compile it from source as follows:

Code: Select all

qmake
make
all good so far. by the way, this requires quite a few packages, which might be worth mentionning in the README.md file (not trivial to all users). For Lubuntu 12.10, those were:

Code: Select all

g++
make
qt4-dev-tools
maybe qt4-dev-tools is too much to install. but i figured that qt4-qmake wouldn't be enough either (because of all the QT source files to be compiled with cutechess).

now in /projects/gui, I have an executable calles cutechess. but if I run it:

Code: Select all

lucas@lucas-desktop&#58;~/Downloads/cutechess-cutechess-4f345b7/projects/gui$ ./cutechess 
./cutechess&#58; error while loading shared libraries&#58; libcutechess.so.1&#58; cannot open shared object file&#58; No such file or directory
I see that libcutechesscli.so.1 is in ../lib/, so I copied it into the gui directory, but still got the same error.

Shouldn't there be some *.sh files to run cutechess and cutechess-cli that are missing ?

Code: Select all

lucas@lucas-desktop&#58;~/Downloads/cutechess-cutechess-4f345b7$ find ./ -type f -iname "*.sh"
&#40;no result&#41;
Oh and I see you did som "man" pages, which is very nice and useful. But still doesn't explain how to load the libcutechess.so unfortunately :-(

PS: now that a lot of progress has been made with cutechess, it would be a good idea to make a compiled version. Compiling from source, especially with QT dependancies and figuring out how to load an external library (libcutechess.co) is not going to be trivial to most users, so if you provide a binary (even if it's just a 0.5 alpha version or whatever you decide to call it), it would allow a lot more people to try it out. Would that be possible ?
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Help us make Cute Chess GUI better

Post by lucasart »

lucasart wrote: now in /projects/gui, I have an executable calles cutechess. but if I run it:

Code: Select all

lucas@lucas-desktop&#58;~/Downloads/cutechess-cutechess-4f345b7/projects/gui$ ./cutechess 
./cutechess&#58; error while loading shared libraries&#58; libcutechess.so.1&#58; cannot open shared object file&#58; No such file or directory
I see that libcutechesscli.so.1 is in ../lib/, so I copied it into the gui directory, but still got the same error.

Shouldn't there be some *.sh files to run cutechess and cutechess-cli that are missing ?

Code: Select all

lucas@lucas-desktop&#58;~/Downloads/cutechess-cutechess-4f345b7$ find ./ -type f -iname "*.sh"
&#40;no result&#41;
Solved by creating a file cutechess.sh in the gui directory as follows

Code: Select all

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="$&#123;dirname#?&#125;"

if &#91; "$&#123;dirname%$tmp&#125;" != "/" &#93;; then
dirname=$PWD/$dirname
fi

LD_LIBRARY_PATH=$dirname/../lib
export LD_LIBRARY_PATH
$dirname/$appname "$@"
I took it from cutechess-cli 0.5.1 (and changed the lib path obviously)

I'm playing around with cutechess GUI now, and I really like it: no more suffering with ugly/lame/slow Wine+Arena for me :-)
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Help us make Cute Chess GUI better

Post by hgm »

SzG wrote: - The ease by which I can install engines. I particularly like that I can modify engine parameters at the time of installing, or any time later.
- The possibility to stop a tournament any time, finishing the current game (without having to watch when it ends), and resuming later.
- The exceptionally nice feature that I can save a tournament in the middle of the construction process, and I can modify, reparameterize engines, then continue constructing the tournament, entering new engines, etc. In Shredder and Fritz, if you make a mistake while setting up a tournament you have to start the whole tournament setting process from the beginning, which is awful.
I hope no one minds that alos I am reading this thread with interest, to get ideas for improving WinBoard/XBoard. I had some questions about your third point. (WinBoard already does the other two.) You are thinking here about situations where you are busy selecting participants, and then suddenly realize you forgot to install an engine, and want to go back to do that first? And then reopen the tournament dialog to just continue where you left off?

Because if I am not mistaken it would be pretty trivial to add that to WinBoard. The only thing it would require is to add a button in the tournament dialog to 'OK' it without automatically starting the tournament (i.e. write the options to the requested tourneyFile, and switch to match mode). Then all the options would be set inside WinBoard, and re-appear automatically when you would open the tournament dialog again, basically bringing you in the same state as after you cloned another tourney. (While on 'Cancel' everything you typed would be discarded.) You could then simply go on entering ore participants, or changing settings, until you press OK.

So all it would require is an 'OK, but not quite' extra button, to leave the dialog without auto-start. Perhaps called 'Continue later' or 'Back soon'. Is that what you would be looking for?