On Wed, Oct 26, 2011 at 8:32 AM, Steve Steinitz
<li...@datatactics.com.au> wrote:

Hi,

> Hi,
>
> OK, I now understand that engine.cpp is just for quick analysis when showing 
> legal moves etc.
>
> Analysis.tcl has an interesting routine called addAnnotation but I'm not sure 
> if its invoked by the game annotation feature or just by the Add Variation 
> button.  In any case I can't see any timeout.
>
> Does anyone know where the game annotation timeout is?  Or how it works?

I should be able to ;-)

I do not have the source tree handy, so I have to stick to general
terms. Feel free to ask for more detail if you need. Not sure though
when I will be able to dig into the dirt...

Annotation is driven by the AutoPlay feature (the play/pause icon in
the middle above the board). AutoPlay basically makes the next move on
the board after some time. Hence, the time that you configure in the
StartAnalysis dialog (only) sets the Autoplay timer. In normal
operation the timer callback operation (search for autoplay) makes the
next move on the board and restarts the timer. A kind of self
propelling mechanism, which stops at the end of the game.

The Analysis itself is independent from this mechanism. The external
engine, once started, continuously spits data on its stdout. This data
is captured, parsed and stored by scid (look in uci.tcl if I am
correct). This information is also used to drop the engine thoughts in
the engine window.

Upon activation of Annotation, both the AutoPlay and Analysis are
started. The timer callback checks if it is in Annotation mode and, if
so, it calls the addAnnotation function before making the next move on
the board and instructing the engine to start working on the next
position. AddAnnotation attempts to do a trend analysis of the engine
output and translates this into the output you see in the PNG window.

This explains what you see: The Analysis which is inserted simply
depends on how far the engine has come at the moment the AutoPlay
timer fires.

Adding a fixed depth option will be a tricky thing, mainly because
Tcl's threading model is a bit messy.

You do not want to change addAnnotation itself. You only want to play
with the moment this is done.

You need to work with the depth information that the engine produces.
In uci.tcl you can find out that the engine has reached the configured
depth and you must translate this into a trigger for the AutoPlay
operation. I would say ahead of (and not instead of) the timer (so
stop that one first) because you need some robustness in case the
engine ceases fire and never reaches your depth target.

>
> Watching Chesstempo.com annotate games to a depth of 13, I've noticed that it 
> can take anywhere from a fraction of a second to eight minutes to annotate a 
> move to depth 13.  So, its going to be difficult to ever choose a good 
> timeout for annotation -- the annotation will always be poorest in the most 
> interesting parts of the game..
>
> Once I have Scid annotating to a fixed depth, I'd like to annotate certain 
> long games to a depth of 19.  That could take days (or even weeks) for a long 
> game if I used time-based annotation, but only hours (maybe even minutes) 
> with fixed depth.

True. But having said all this, I do not think fixed-depth analysis is
the better approach for proper annotation. I feel you can safely
assume that if the engine takes little time to reach high depth (for
example in pawn endings), this depth is really needed for a proper
assessment of the situation. The opposite is also true: If the
position is of a complicated strategic nature, the engine has trouble
in determining a favorable course of the game. So it will not be able
to prune the tree of variations, which makes the progress in depth
slower. It is very very unlikely that allowing the engine to progress
further will render a better (single!) move, or a more interesting
line (it will be a longer line, though).
Unlike for humans, time might be a nice natural trigger for an engine.

Anyway, it would be nice if you get your stuff working!

Cheers,
Joost.

>
> Cheers,
>
> Steve
>
>
> Prelvious Message
> ---------------------
>
> Hello,
>
> I'm trying to modify my copy of Scid to stop annotating each move when it 
> reaches a depth of 13.  i.e. I want to give it a large "time between moves in 
> seconds", say 999, but let it go on to the next move when it reaches a depth 
> of 13.
>
> There are surprisingly few programs which allow that kind of depth-based 
> annotation, a notable exception being chesstempo.com's java-web-based control 
> of your local engine.  A novel idea.  But that's kind of a pain (e.g. it 
> doesn't check an opening book for the first few moves like Scid does) and I'd 
> like to do everything in my beloved Scid (Mac).
>
> As an initial hack, I modified Engine::Think to use an instance variable, 
> depthCounter, to keep track of the current depth, and then added a check for 
> depthCounter >= 13 to Engine::OutOfTime().  However the annotating still 
> carries on merrily past my depth of 13.
>
> I think I'm not understanding how the annotation works.
>
> Can anyone point me in the right direction?
>
> Cheers,
>
> Steve
> ------------------------------------------------------------------------------
> The demand for IT networking professionals continues to grow, and the
> demand for specialized networking skills is growing even more rapidly.
> Take a complimentary Learning@Cisco Self-Assessment and learn
> about Cisco certifications, training, and career opportunities.
> http://p.sf.net/sfu/cisco-dev2dev
> _______________________________________________
> Scid-users mailing list
> Scid-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scid-users
>



-- 
No clue how it works, but this was sent from my phone.

------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Scid-users mailing list
Scid-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scid-users

Reply via email to