GithubHelp home page GithubHelp logo

bernds / q5go Goto Github PK

View Code? Open in Web Editor NEW
165.0 165.0 28.0 16.7 MB

A tool for Go players: SGF editor, analysis tool, game database and pattern search tool, IGS client

License: GNU General Public License v2.0

Makefile 7.79% M4 0.23% Shell 3.88% XSLT 0.07% C++ 87.23% C 0.28% QMake 0.52%

q5go's People

Contributors

alserkli avatar apetresc avatar bcable avatar bernds avatar jordibc avatar missdeer avatar trevoke avatar vesath 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  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

q5go's Issues

observer bar keeps coming back

the observer bar seems to be always visible, even when i choose to hide it and save it that way, the next time i open a new game, the bar keeps coming back. you were saying this was independent from the general layout and a special settings for it might have to be made for it. this issue will serve as a reminder of that talk as it's easy to forget when time passes and one gets involved in other parts of the code.

q5go doesn't save layout properly

i configured the layout so when i play on igs, the side bar is on the right, and the comment (chat) bar is on the left. i disabled most of the other bars like: editbar, navigationbar.. basicaly i kept only 5 of them:

  • file
  • miscelaneous
  • comment
  • menu
  • sidebar

then i clicked save layout globaly, but, each time i restart q5go, few of them bars have been reseted to their default location, and reactivated so they show up again despite me having disabled them before. some of them are saved i think, and some others aren't.
also, in new game, the sidebar is reported as disabled in the view menu while it is actualy being shown.

set quiet value isn't being saved

each time i connect on igs, i have to manually set quiet to be false.
i want to see the server message. q5go doesn't seem to save my choice for quiet as it does for other settings, like: looking and open

fail to compile

../src/qgo_interface.cpp: In member function ‘void MainWindow_IGS::unobserve_game(go_game_ptr)’:
../src/qgo_interface.cpp:447:73: error: no matching function for call to ‘QMetaObject::invokeMethod(MainWindow_IGS*, bool (QWidget::*)(), Qt::ConnectionType)’
QMetaObject::invokeMethod (this, &QWidget::close, Qt::QueuedConnection);

feature request: add "number of visits per board position" to the batch analysis

It would be nice to specify a number of visits to put on each board position, as a different option from "time to spend on each board position".

Currently I end up with some fairly uneven visits on board positions - some positions get 700 visits, some get a few thousands, some apparently get up to 20 or 30. I imagine that some of these numbers are due to how q5go does the analysis in the reverse, so it reconnects to prior-done work in the analysis, but I'd like to have a minimum number of visits guaranteed on all board positions.

Invalid decimal point in SGF when using different locale

I'm using Polish locale on my system (pl_PL.UTF8), in which the decimal point is defined as comma (,).

The comma is used for a komi field in user interface of "Game information", which is fine. However, when writing the game to SGF, a comma is also written, e.g. KM[6,5], whereas the SGF standard requires dot to be used (i.e. KM[6.5]).

This results in broken SGF file, which cannot be read back into qGo or other editors ("Errors found in SGF file").

I suspect other tags containing real values can also be affected.

The workaround is to edit SGF in some text editor and replace comma with dot.

Klein bottle support

Hi. I greatly appreciate your Go editor and its unique support for both GTP engines and toroidal Go. Adding support for the Klein bottle (where one pair of opposite edges connects in opposite orientation and the other pair connects in the same orientation) would be very helpful for me, as it would help me play this variant with an adapted version of KataGo. Could you please add this support or point me to what code I would need to change in order to accomplish this? Thank you!

Unable to write messages

Using the latest git version, I'm unable to write messages when playing or observing games. The small message window doesn't appear. There is no such issue with the 0.9 release version.

cannot open SGF file which file name contains CJK characters

as per the explanation at https://stackoverflow.com/a/4644922, the code below works for me:

void ClientWindow::slotFileOpen(bool)
{
	QString fileName(QFileDialog::getOpenFileName(this, tr ("Open SGF file"), setting->readEntry("LAST_DIR"),
						      tr("SGF Files (*.sgf *.SGF);;MGT Files (*.mgt);;XML Files (*.xml);;All Files (*)")));
	if (fileName.isEmpty())
		return;

#if defined (Q_OS_WIN)
    QByteArray qba = fileName.toLocal8Bit();
#else
    QByteArray qba = fileName.toUtf8();
#endif
    open_window_from_file (qba.constData ());
}

connection lost without notice

i was playing on igs, and suddenly my opponent was taking a long time to respond and do his move.
on the server window (where there is the igs console, user list and player list) i tried to refresh game and user list, but nothing would show up. these areas went all white with nothing in it. igs console didn't reply to my input properly, like: typing "help commands" didn't gave me the list of commands.

so now i have no idea how to resume my previous game, if it is possible at all.
if there is a long server lag or connection lost, maybe q5go could tell us about it ?

`About q5Go` action pops up AboutQt dialog on macOS

On macOS, if a board window is in front, if About q5Go action is triggered from the menu bar, the AboutQt dialog pops up.
Setting proper menu role to actions may resolve this issue, for example:

--- a/src/boardwindow_gui.ui
+++ b/src/boardwindow_gui.ui
@@ -3644,6 +3725,9 @@ Take a screen grab of the current board position and export it to the clipboard
    <property name="shortcut">
     <string>Alt+P</string>
    </property>
+   <property name="menuRole">
+    <enum>QAction::PreferencesRole</enum>
+   </property>
   </action>
   <action name="soundToggle">
    <property name="checkable">
@@ -3670,11 +3754,17 @@ Take a screen grab of the current board position and export it to the clipboard
    <property name="text">
     <string>&amp;About..</string>
    </property>
+   <property name="menuRole">
+    <enum>QAction::AboutRole</enum>
+   </property>
   </action>
   <action name="helpAboutQt">
    <property name="text">
     <string>About &amp;Qt...</string>
    </property>
+   <property name="menuRole">
+    <enum>QAction::AboutQtRole</enum>
+   </property>
   </action>
   <action name="anConnect">
    <property name="text">

GTP support and debug

Hello there,
I do like your q5go very much but, in my opinion it should provide a better GTP support.
I do use and test tens of go engines and I would like to use them with q5go, unfortunately it seems your program is not providing much help in debugging gtp engines.
For example, in case a GTP transaction fails for any reason, you simply get a "Invalid response from GTP engine" message without knowing why it failed. This makes GTP debugging very difficult. I would like to suggest a change in GTP_Process::default_err_receiver (src/qgtp.cpp) like so:

void GTP_Process::default_err_receiver (const QString &error)
{
    QString errMsg = "Invalid response from GTP engine: ";
    
    errMsg += error;
    
    m_controller->gtp_failure (this, tr (errMsg.toLatin1()));

    quit ();
}

You would at least know what was the invalid response from the GTP engine and fix it. And it would also be VERY helpful to know why the "GTP process exited unexpectedly" which is shown in case a "who knows why" error is happening with a GTP engine.

Another thing I would love to see, and for the very same reason about GTP debugging, is to have a window with the whole GTP transaction and log. I see this log window is opened at the moment of the engine startup and then it is closed: Why don't you add an option in order to have this window always open and showing the whole communication with the engine?
It would immensely help to track and debug any GTP engine without the need of using another program offering this useful feature.

I truly like your program, also because it was written for Qt, and it would be GREAT if it would have a better GTP integration and logging. I also find sometimes difficult to use q5go when connecting to GO servers: it connects to the service but it will not show anything, no rooms, no games, no users, just an empty window.

Despite of that, this is a very good program which could replace all the other ones around and offering an "all in one" solution, from playing with a GTP engine, to connecting to a server, analyzing games and learning the game.

Server command input line does not respond.

Steps to reproduce:

  • Start the 'play online' main window
  • Open a new board window (ctrl-B)
  • In the 'server messages' panel ('play online' window), type anything in the command input line
    a command line which was sent previously
  • Press enter, nothing happens (command is not sent)

The issue does not occurs before opening the new board window. Closing that second window does not solve it.
An actual server connection is not necessary, this seems to be purely on the UI side.

This is on the master branch, running:
Linux 5.7.3
X11
i3 4.18.1
Qt 5.14.2

chat window problems (loss of focus and colored text)

the chat window have a few problems and might benefit a little work on it for better user experience

  • there is a loss of focus whenever enter key is pressed.
    when one send text by pressing enter key, the focus is lost and constently require the user to keep clicking on the chat window at each sentences he want to make. this is a little annoyance. if the focus on chat window could be maintained until a click is performed elsewhere that would be better for the user experience as it would allow normal chatting without having to constently having to re-set the focus.

  • the user experience with chat window could also become better if different colors could be set for the two speakers. my text could be all green, and the other's can stay black for example. allowing to apply a color setting on the speakers text would help for better readability, at a glance one could quickly see what is his text and what is the opponent's text. this could be made either quickly with just one hardcoded value. or to be even better a new ui element in preferences allowing settings of both colors, where q5go users could select which colors for each speaker. (for example, in preferences i could choose: my text blue, other's text red or whatever colors suits q5go users better, they could choose).

Can q5Go store variations temporarily when pausing analysis?

I know I can store variations when analyzing, but when I pause analyzing, all the variations are gone. If use Sabaki, I can use "final_score" to store variations temporarily on the board and the analysis is paused, but I can't store variations because the author of Sabaki doesn't like variations as far as I know. I hope to choose variations to store when pausing analysis because real-time analysis will make my poor laptop hot.

igs log isn't displaying correctly

i think q5go doesn't display igs session output correctly.
for example it doesn't seem to show captures.

unless igs changed its protocol, here's what we should see
normal move:

1 8
15 Game 656 I: Maruhi (13 527 8) vs tataki (16 518 17)
15 264(B): B19 

move that capture opponent stones:

1 8
15 Game 656 I: Maruhi (13 527 8) vs tataki (16 518 17)
15 264(B): B19 C19 C18 C17 D18

(it's not from a real game but this is to illustrate that captures should show up next to any given move)

Compilation fails on navclicked.png

I am trying to compile q5go on an Archlinux system, following the suggested mkdir/qmake/make procedure. Compilation fails with:
make: *** No rule to make target '../src/images/boardwindow/navclicked.png', needed by 'qrc_q4go.cpp'. Stop.

In fact that file is nowhere to be found in the sources. Once I added a dummy png compilation succeeded. However, it would be nice to have the right image...

challenge, accept, no board

A problem I have. Challenge player I do. They accept, but no board appears. Perhaps I am missing something, but it feels a bit like I can't use version 0.8.1 to start a game. Perhaps I do something stupid

nmatch A W 9 19 600 180 25 0 0 0
Requesting nmatch with A(W 9 19 600 180 25 0 0 0).

Game 167 (I): A [ 5k?] vs B [14k ]
TIME:167:A(W): 0 600/600 0/180 25/25 0/0 0/0 0/0
TIME:167:B(B): 0 600/600 0/180 25/25 0/0 0/0 0/0
GAMERPROPS:167: 19 0 -5.50
A B C D E F G H J K L M N O P Q R S T H-cap 0 Komi -5.5
19 |. . . . . . . . . . . . . . . . . . .| 19 Captured by #: 0
18 |. . . . . . . . . . . . . . . . . . .| 18 Captured by O: 0
17 |. . . . . . . . . . . . . . . . . . .| 17
16>|. . . + . . . . . + . . . . .>+<. . .|<16 Wh Time 10:00
15 |. . . . . . . . . . . . . . . . . . .| 15 Bl Time 10:00
14 |. . . . . . . . . . . . . . . . . . .| 14
13 |. . . . . . . . . . . . . . . . . . .| 13 Last Move:
12 |. . . . . . . . . . . . . . . . . . .| 12 #0 O (White)
11 |. . . . . . . . . . . . . . . . . . .| 11
10 |. . . + . . . . . + . . . . . + . . .| 10
9 |. . . . . . . . . . . . . . . . . . .| 9
8 |. . . . . . . . . . . . . . . . . . .| 8
7 |. . . . . . . . . . . . . . . . . . .| 7
6 |. . . . . . . . . . . . . . . . . . .| 6
5 |. . . . . . . . . . . . . . . . . . .| 5
4 |. . . + . . . . . + . . . . . + . . .| 4
3 |. . . . . . . . . . . . . . . . . . .| 3
2 |. . . . . . . . . . . . . . . . . . .| 2
1 |. . . . . . . . . . . . . . . . . . .| 1
A B C D E F G H J K L M N O P Q R S T
games 167
Match [167] with B in 10 accepted.
Please use say to talk to your opponent -- help say.
A B C D E F G H J K L M N O P Q R S T

167 5 0 19150.00 19150.00 19150.00

Save/restore layout doesn't fully work, loses some settings

When I customize the layout of the game/board window it fails to save completely, and also fails to apply as the default when a new game window is opened.

Specific reproduce steps:

  1. Open a game to watch on IGS.
  2. Click View menu, disable status bar, slider, observers.
  3. Click View menu, save as default layout.
  4. Close game and/or q5go.
  5. Run again open another game, layout shows all the disabled panels again.
  6. View menu - Restore layout, mostly works but slider and status bar stay visible and this must be done for each opened game.

My preference is to maximize the vertical screen space the board is able to occupy.

No sound will play regardless of settings

Followed the instructions to compile on linux and I noticed that none of the sounds will play. No errors show on the terminal while running, either.

Compiled on Arch Linux with latest packages and using ALSA for sound. Tested both the 2.0 release and the latest git pull.

Ensure client mode for IGS connection

When an IGS connection is in verbose mode (toggle verbose 1), game moves are send as nice ASCII art, which is not recognized by the parser. When that occurs, the board windows simply never show after accepting/observing a game.

The problem is that on IGS, the verbose setting seems to be persistent across sessions. Thus if I e.g. turn it on because I was connecting to IGS with telnet, and then connect with q5go, it will still be in verbose mode, and fail. (This took me longer to debug than I am willing to admit)

Enabling client mode toggle client 1 when starting the connection seems like a sensible way to avoid this.

I have yet to check whether this applies to NNGS in general, or is specific to IGS.

automaticaly remove clear password from log file

user password should not be saved in debug file.
some measures should be taken to avoid storing them in debug file.
it happen only once per session as far as i can tell.

PASSWORD***
"1 1"
Password or 1 1: found:  "1 1"
"...send password"
send password  "xxxxxx"
>>  "xxxxxx"
PASSWORD***

apparently you're already able to tell when that event takes place, from its begining to its end (i mean the two strings "PASSWORD***" encompass the whole event). so just avoiding logging everything in between would be better. or replacing that with generic (password free) equivalent.

Add "unspecified" option for analysis rules

hi,

currenlty the only options for analysis rules are japanese, chinese or "guess from sgf" (analysis menu -> ruleset)

the "guess from sgf" seems to default to tromp taylor rules in the absence of any other information, overriding katago's rule definition from its config file.

this is a problem if you want to use non-standard rulesets for katago, like stone scoring, which is area scoring + group tax, and currently impossible to use in analysis in qgo as far as I can determine.

so it would be cool if an option like "unspecified" for the ruleset could be added which does not override the ruleset specified in katago's config, or alternatively, if the "guess from sgf" would simply not set any rules at all in the absence of any information. (tromp taylor is seemingly used on blank sgfs)

greetings

analysis on boards larger than 25x25

I make matches of different KataGo networks and play myself on 27x27 and 29x29 boards. after that it is interesting to do the analysis using the stronger KataGo network. but when setting the parameters, "preferences - computer go - change an engine configuration - board size (use for analysis)" - the limitation is 25x25. can this restriction be lifted?
probably in the "batch computer analysis" window "board size" is related to this, also limited to 25x25

What are the build requirements for linux?

Following the instructions..

Compiling
On Linux, make a build subdirectory, enter it, and run
  qmake ../src/q5go.pro PREFIX=/where/you/want/to/install

..makes my system (debian oldstable) request qt4 binaries, so I installed qt5-default.
This had qmake work, but make then failed with tons of errors on 'unknown functions'.
Suspecting that what is really needed is qt5-default binaries, I installed those.
qmake is now failing with

Project ERROR: Unknown module(s) in QT: multimedia svg

Which assumptions are made about the build tools available?
What do I need to install, and possibly clear out, in order for the instructions given to work?

Feature request: more details of errors in malformed SGF files

On loading an SGF, sometimes q5go pops up a dialog box saying "Errors found in SGF file". Often this is for files that load quite happily in other applications (e.g. Lizzie, CGoban, Jago). Is it possible to include a bit more information in this dialog box, so it's easier to track down inconsistencies in how the SGF standard is used? I have no problem with q5go enforcing a stricter interpretation of the standard than others, but the error reporting could be a bit friendlier!

(In some cases, after a lot of trial and error, I've found that Jago is inserting "FF[1]" tags that q5go doesn't like. If I just delete those four characters of the SGF using a text editor, the file loads with no problems.)

build issue with analyzedlg.cpp

I guess I must be missing something? The following error occurs on starting build (make) on my slackware64 system:
../src/analyzedlg.cpp: In member function ‘virtual void AnalyzeDialog::eval_received(const analyzer_id&, const QString&, int, bool)’:
../src/analyzedlg.cpp:346:55: warning: unused parameter ‘id’ [-Wunused-parameter]
346 | void AnalyzeDialog::eval_received (const analyzer_id &id, const QString &, int, bool have_score)
| ~~~~~~~~~~~~~~~~~~~^~
make: *** [Makefile:1059: temp_/analyzedlg.o] Error 1
Exit 2

Error for katago gtp console on ubuntu

full info:

komi 7,50
2020-05-07 18:35:17+0200: Controller: 3 clear_board
2020-05-07 18:35:17+0200: =3
?4 Expected single float argument for komi but got '7,50'
2020-05-07 18:35:17+0200: Controller: 4 komi 7,50
2020-05-07 18:35:17+0200: ?4 Expected single float argument for komi but got '7,50'
quit

sgf auto-play

is it possible to auto-play sgf files? that is, to have the board automatically go through the game moves at some set time interval?

Like cgoban3's shift-click on next-move button, which starts playing the moves without user input.

I've seen some reference to an auto-play feature in the changelog and in the translations, but couldnt figure out if it's still a feature in q5go and how to use it. (The fact that auto-play interval settings seems to be gone from the preferences makes me think it isnt currently supported)

sooo.. is it possible? if so how? if not, is it likely to be implemented?

Reconsider how to display engine variations at the last move in the game tree/eval graph

I am running Batch analysis in version 0.9 using KataGo and the analysis starts from near the end of the game and works towards the first move. The issue is that in the two games I have tried, the analysis skips the last several moves of the game, for example starting analysis at move 208 in a game that has 217 moves, skipping analysis of 209-217. The other game it started analysis at move 135 out of 142 moves skipping moves 136-142.

import toroidal sgf

I had a look at v0.4; I'm particularly interested on it's features for toroidal boards. Is it possible to import SGF for a game on this sort of board?
I also posted this identical question on the L19 forum. Sorry for the duplicate but I tend to go on github a little more often than on L19...

Single-window/tabbed mode option

Would it be feasible to add an option to merge all windows into a tabbed layout? Other than the obvious of keeping window manager clutter down, this would also help make streaming through OBS easier.

link error on macOS

need to add something like below to src/q5go.pro:

macx :{
    LIBS += -framework CoreFoundation
}

Komi

I have an issue with analysis engine.

I use katago and get this message ; I couldn find where does this komi value come from and how to fix it.

<Working directory: /home/jl/bin/katago-v1.7.0-cpu-eigen-linux-x64
protocol_version
KataGo v1.7.0
Using koPOSITIONALscoreAREAtaxNONEsui0 rules initially, unless GTP/GUI overrides this
Loaded config /home/jl/bin/katago-v1.7.0-cpu-eigen-linux-x64/gtp_example.cfg
Loaded model /home/jl/bin/katago-v1.7.0-cpu-eigen-linux-x64/g170e-b15c192-s1305382144-d335919935.txt.gz
Model name: b15c192-s1305382144-d335919935
GTP ready, beginning main protocol loop
=1 2
boardsize 19
=2
clear_board
=3
komi 7,50
?4 Expected single float argument for komi but got '7,50'
quit>

Features for easier time management.

The official pandanet client has this helpful feature that changes the color of your clock if your time remaining/moves remaining value goes under a certain threshold. Also, clients for some other servers can display the time remaining on top of the last played stone if you have only a few seconds left. This is very useful for blitz. Would it be possible to implement something like these in q5go?

games selection window works on one system but not another.

I have compiled this on two of my (slackware64-current) systems now. On one system the 'game sekection' window docks all observed games into a single pane/window and on the other this does not seem to work. Even though I can enable/view the games selection window on the other system, each game wants to start in a separate window. Is this a compile feature? A library issue? Thanks.

Only a fraction of moves have sound.

When sound is turned on there is sound only for about 1/4 of the moves. These moves that have sound seem to be randomly distributed. It is quite annoying because sometimes when i'm reading i don't immediately realize when my opponent makes a move. Looking at the source it doesn't seem like intended behavior, but i couldn't figure out why it is happening. I tried removing the switch statement and making it play only one kind of stone sound, and setting local_stone_sound permanently to 1 but these didn't fix the issue.

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.