LV so after I add this code, how do I activate it?
George Peter Staplin This code is interesting. Thanks for sharing. :)A somewhat related chess RPC project is in the Tequila cvs tree. See: [3]
### Mike's Add for Smart Network Opponent to Chess in Tcl ### put at the bottom of the Chess in Tcl code ... http://wiki.tcl.tk/4070 proc InitChessServer {} { package require SOAP set uri "urn:BorlandChess-IBorlandChess#XML_GetNextMove" set proxy "http://www.danmarinescu.com/WebServices/ChessCGIServer.exe/soap/IBorlandChess" #SOAP::configure \ # -transport http -proxy host:port \ # -headers { "Proxy-Authorization" "Basic XXYYZZ" } SOAP::create XML_GetNextMove \ -uri $uri -proxy $proxy \ -params {"Position" "string" "WhiteMovesNext" "boolean" "SearchDepth" "integer"} # example from the danmainescu site #set a "rnbqkbnrpppppppp[string repeat { } 32]PPPPPPPPRNBQKBNR" #XML_GetNextMove $a true 3 ;# returns "e2e4 OK" } proc GetNextMove {} { global game set board {} foreach row {8 7 6 5 4 3 2 1} { foreach col {A B C D E F G H} { if {$game($col$row) == "."} { append board " " } else { append board $game($col$row) } } } set result [string toupper [XML_GetNextMove $board false 3]] return "[string range [lindex $result 0] 0 1]-[string range [lindex $result 0] 2 3]" } InitChessServer after 1000 CheckBoard set game(autoMove) 1 proc CheckBoard {} { global game if {$game(toMove) == "black" && $game(autoMove)} { set ::game(results) [GetNextMove] if {$::game(results) != "A1-A1"} { puts [uplevel {chess::move game $::game(results)}] game drawBoard .c ame $::game(results)}] } else { #some prompt that game is over so you want to play somemore } set game(autoMove) 0 } return [after 1000 CheckBoard] } proc MoveInfo {- - -} { set ::info "$::game(toMove) to move - [chess::values ::game]" set ::game(autoMove) 1 }