Beutiful, thanks a lot. I will try it as a soon as I can.

In the following webpage people can learn about scripting. Also
there are a bunch of scripts examples in scid's source package.

http://scid.sourceforge.net/doc/progref.html

Having said that, I still have to learn the material so Mike's
help is very much appreciated... and I can annotate games while I
learn scripting ;)

cheers
R.

On Fri, May 4, 2012, at 11:41 AM, Mike Curtis wrote:

  >I was very impressed by Mike's script. Do you have one for
  annotating games.
  >I have a server I would like to ssh to and just leave
  annotating games during the night without a graphical
  interface.
  >Thanks a lot.
  >I'm also interested to learn about any helpful documentation
  on scid/scripting.
  >cheers
  >R
  Here's another example for our scid scripting cookbook:
  --8<---------------cut
  here---------------start------------->8---
  #!/bin/bash
  # annotate <database> <engine> <seconds> \
  exec tcscid "$0" "$@"
  package require Expect
  proc analyze { position engine seconds } {
    set variation ""; set engine_id ""; set eval ""
    log_user 0
    set timeout $seconds
    exp_spawn "$engine"
    exp_send "uci\n"
    exp_send "position fen $position\n"
    exp_send "go movetime ${seconds}000\n"
    expect {
      timeout {
        puts stderr "timeout"
        exp_send "quit\n"
      }
      "bestmove" {
        exp_send "quit\n"
      }
      -re "id name \[^\r\n\]+" {
        regsub ".*id name " $expect_out(buffer) "" engine_id
        exp_continue
      }
      -re "score mate \[0-9\]+" {
        regsub ".*score " $expect_out(buffer) "" eval
        exp_continue
      }
      -re "score cp -*\[0-9\]+" {
        regsub ".*score cp " $expect_out(buffer) "" eval
        # convert cenipawn and adjust sign
        if {[sc_pos side] == "black"} { set eval [expr {-
  $eval}] }
        set eval [format "%+.2f" [expr {$eval / 100.0}]]
        exp_continue
      }
      -re "pv \[^\r\n\]+" {
        regsub ".*pv " $expect_out(buffer) "" variation
        # engine output is e7e8q, addSan requires e7e8Q
        set fix_promotions {"q" "Q" "r" "R" "n" "N" "b " "B "}
        set variation [string map $fix_promotions $variation]
        exp_continue
      }
    }
    exp_close
    exp_wait
    return [list $variation $engine_id $eval]
  }
  set database [lindex $argv 0]
  set engine [lindex $argv 1]
  set seconds [lindex $argv 2]
  sc_base open $database
  set numGames [sc_base numGames]
  for {set i 1} {$i <= $numGames} {incr i} {
    sc_game load $i
    sc_move forward 6
    while {[sc_pos isAt end] == 0} {
      puts stderr "Game $i/$numGames, move [sc_pos moveNumber],
  [sc_pos side]"
      set result [analyze [sc_pos fen] $engine $seconds]
      puts stderr $result

      set variation [lindex $result 0]
      set engine_id [lindex $result 1]
      set eval [lindex $result 2]

      sc_var create
      sc_move addSan $variation
      sc_pos setComment "$engine_id: $eval"
      sc_var exit
      sc_move forward
    }
    puts [sc_game pgn]
  }
  --8<---------------cut
  here---------------end--------------->8---
  ./annotate blitzgames stockfish 5 | tee annotated.pgn
  *Mike

-----------------------------------------------------------------
-------------

Live Security Virtual Conference

Exclusive live event will cover all the ways today's security and

threat landscape has changed and how IT managers can respond.
Discussions

will include endpoint security, mobile security and the latest in
malware

threats.
[1]http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

_______________________________________________

Scid-users mailing list

[2]Scid-users@lists.sourceforge.net

[3]https://lists.sourceforge.net/lists/listinfo/scid-users

References

1. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
2. mailto:Scid-users@lists.sourceforge.net
3. https://lists.sourceforge.net/lists/listinfo/scid-users
-- 
  
  rzan...@fastmail.fm

-- 
http://www.fastmail.fm - IMAP accessible web-mail

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Scid-users mailing list
Scid-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scid-users

Reply via email to