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