H.G.Muller wrote:And then it would be badly broken... Games would be adjudicated to the wrong side, scores would go wrong into the PGN, multi-PV output would be sorted in the wrong way... Having a bar point up or down, or seeing a + or - in the Engine Output window is a matter of taste, but adjudicating the wrong side to win, or having the best line so far not on top of the display are absolute errors, and thus much worse, agreed?
Agreed. All of that is much,
much worse. But my first thought was that, if it was possible, only the printing of the bar on the screen would change. Everything else - adjudications, scores in the PGN, multi-PV output, all of that - would all continue to be
exactly as it is now. That's all fine now and so we certainly don't want
any of that to change.
I didn't realize all of that was so closely related. I only wanted Black's bars reversed from the way they were being printed on the screen and nothing else changed
anywhere else.
H.G.Muller wrote:Currently WinBoard prints the bar exactly as you want it (and as anyone would probably want it). So no fix is needed there.
This is correct. If I get rid of my ScoreWhite=true option in the Polyglot ini file, the Black evaluation bars are perfectly fine.
H.G.Muller wrote:Reporting scores from the engine's own POV in the message field and engine-output window is how WinBoard has always done it (this is known as the EPD standard). But if you don't want that, the proper fix would be to flip the sign just before printing in the engine-output window. Which is exactly what the option /absoluteAnalysisScores=true does.
You mentioned this option in an earlier reply above. I wasn't aware of that option in WinBoard. Thanks. I tried it and it looks like it does the same thing that the
ScoreWhite=true option does in the polyglot ini files. If so, I suppose I could then remove that statement from my polyglot ini files and use this option here instead.
But it doesn't appears as if this option is saved in winboard.ini anywhere. Question: I would have to always start WinBoard with this option on the command line, or go into Winboard Options and then Adjudications window each time I loaded the program, to set this up, correct? Would it be a good idea to add this option to winboard.ini in a future release?
I understand what you are saying. Reporting the score from White's point of view is not EPD standard. And yet you've given the user the option to display the scores the way they want, even if it
is not standard, and this is all fine. So if the user wants to see the evaluation scores "wrong" (not EPD), then they have to just accept that they must see the graph "wrong" too. That makes sense to me, but I was hoping there was an easy fix/option/solution for that, so the user could have both... the scores displayed from White's POV,
without messing up the already-correct graphical display...
and without messing anything else up. Those two displays, numerical (score) and graphical (bars), should go hand-in-hand.
It makes sense to me when flipping the score for the user, to not also flip the bars. The bars were okay. Wait! I know what you're going to say. "I'm not doing anything to flip the bars." Exactly. But to the user, the illusion is, the bars
are flipped, because the existing code does what it normally does and thus prints them differently all thanks to the user wanting the scores displayed different. But he/she didn't want the evaluation graph changed. Thus, the code should flip them to give the illusion that they aren't being flipped!
Educate me here. (From a programming standpoint.) Why won't this work:
You certainly must have some kind of a sub-routine that is called when it's time to print the bars.
Something like:
- Code: Select all
code
code
Call PrintBarSubroutine
code
code
etc.,
PrintBarSubroutine:
code that prints the Evaluation Bar
END PrintBarSubroutine
Instead, why won't this work:
- Code: Select all
code
code
Call PrintBarSubroutine
code
code
etc.,
PrintBarSubroutine:
IF absoluteAnalysisScores = true AND about to print the BLACK bar = true THEN
Multiply BlackEvaluationScore by -1
END IF
code that prints the Evaluation bar
(and then switch the Black's score right back, so nothing else is broken in the program)
IF absoluteAnalysisScores = true AND just printed BLACK bar = true THEN
Multiply BlackEvaluationScore by -1
END IF
END PrintBarSubroutine
Nothing else in the entire program would change at all. Only with that one statement immediately before the
Black bar is actually printed on the screen, is the program modified to check to see if the the user has the option set to see the scores from White's POV. If both are true, the program temporarily reverses Black's evaluation, prints the bar as it does now, (which would flip-flop the bar from the way it's printing now) and then reverse the score right back, so nothing else is altered or changed
anywhere else. This would print the graph properly, but still give the user his/her option to display the scores from White's POV.
I'm very curious to know why that won't work, from a programming standpoint. There's obviously must be more to it than that, based upon WinBoard's actual code and what it does, and I'm kind of interested to know a little more about it.
I enjoy reading your comments. And again, thanks for all your work on WinBoard. It beats all other interfaces hands-down.