Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
436dc7a
Annotate game with new Engine-Interface
Jan 26, 2025
11654e9
Batchmode added
Jan 26, 2025
7c385c5
AnnotateVar removed, show game number in progress
Jan 27, 2025
63f2101
use proc initAnnotation for every new game
Jan 27, 2025
368aa80
Support for uci-engines only
Jan 28, 2025
9a38866
new proc annotateGame, check for engine connection
Jan 28, 2025
dcaa67d
code cleanup, show SAN in progress window
Jan 28, 2025
771e2ac
use sc_move addSAN
Jan 28, 2025
bcc715f
bachmode optimized
Jan 29, 2025
8f09206
add second progressbar for batchmode
Jan 29, 2025
45e4bd6
code cleanup
Jan 29, 2025
b14a2c5
code optimized
Jan 30, 2025
84b9d3a
option to store two engine variations
Jan 31, 2025
2954654
rename variable
Jan 31, 2025
1e144c0
code cleanup
Feb 1, 2025
b132b9d
revert last commit partially
Feb 2, 2025
11c06f9
Finish game with new Engine-Interface
Feb 2, 2025
a9c1d05
implement long annotation
Feb 3, 2025
511c00b
check for 50-move rule and 3-fold repetition
Feb 5, 2025
13a0c3e
Frame added to edit engine parameter
Feb 9, 2025
ff14757
new namespace engineNoWin
Feb 9, 2025
713f8ce
move edit frame to namespace engineNoWin
Feb 9, 2025
830f341
new namespace engineNoWin
Feb 9, 2025
6cf8a16
place option widget side by side
Feb 9, 2025
66bd72f
code cleanup.
Feb 9, 2025
94ea51a
check uci engine in initEngine
Feb 10, 2025
308d227
check uci engine in initEngine
Feb 10, 2025
c62a932
add chess960
Feb 15, 2025
0af49ee
use new engine interface for serious game
Feb 15, 2025
702b669
store ponder move from engine
Feb 15, 2025
d852884
activate blunder check
Feb 15, 2025
8ccc544
replace ::uci::sc_move_add
Feb 15, 2025
0dc7440
replace ::uci to ::sergame
Feb 16, 2025
32a0e7e
adjust score for comment and coach
Feb 16, 2025
26bc160
initialize PV2 for non multipv engines
Feb 16, 2025
782a377
Merge branch 'SeriousGameNewEngine'
Feb 16, 2025
fca1540
rename uciInfo to data
Feb 16, 2025
e3dfa78
Merge branch 'finishGame'
Feb 16, 2025
0182217
use same check for 3-fold-repetition in finshgame and sergame
Feb 16, 2025
3d55cc6
::engineNoWin:: removed from finishgame.tcl
Feb 16, 2025
0b0f592
stop game if engine terminated
Feb 16, 2025
c3c408f
Add first functions to give advice in serious game from second engine
Mar 1, 2025
bfcfd62
show engine blunder in infobar for tactical advice
Mar 2, 2025
3666104
store timecontrol
Mar 2, 2025
8e39c87
rearrange config serious game dialog
Mar 2, 2025
01b558f
handle mate evaluation and correct evaluation on blunders
Mar 5, 2025
0728f21
correct handling of coach engine: make sure a move and evaluation is …
Mar 15, 2025
e613638
save parameter for next game
Mar 15, 2025
756ab52
correct start of first move wth white on engine ponder
Mar 15, 2025
4cba1ab
Set game result after the game
Mar 16, 2025
53542c9
Play opening from start when selected
Mar 17, 2025
8dbd534
procs checkBlunder and startEngine added
Mar 17, 2025
ad7ae8f
add proc checkEngineBlunder
Mar 17, 2025
f62e23b
rename engineGo to playLoop
Mar 19, 2025
bfcd551
button to save changes of engine configuration in OptionFrame
Apr 6, 2025
aedbeed
use ::engineNoWin::disconnected in finishgame
Apr 6, 2025
6e39c8a
new proc ::engineNoWin::disconnected
Apr 6, 2025
1c4953a
remove default value from initEngine
Apr 6, 2025
ce9e0d1
Merge branch 'AnalyzeNewEngine'
Apr 6, 2025
f16a3bd
move annotate vars to namespace annotation and rename to annotateData
May 6, 2025
5f4d456
improvement for init engine
May 11, 2025
f23e8fa
engConfig 9 not needed, removed
May 11, 2025
277e483
engine init moved from dialog to proc play
May 14, 2025
b1f3f9e
add parameter engine typ (uci,winboard,all) in createEngineOptionsFrame
May 14, 2025
a740555
save all option for sergame
May 16, 2025
ac02818
tacgame removed
May 16, 2025
5ecd49e
Merge branch 'AnalyzeNewEngine'
May 16, 2025
92b5cc4
save options for annotation
May 16, 2025
3bb0f14
Use grafic for close button
May 17, 2025
45e1fb5
shift namespace enginenowin in separate file
May 18, 2025
3563bcf
new proc getBookList
May 18, 2025
8553cd1
Merge branch 'AnalyzeNewEngine'
May 18, 2025
0644d08
use new proc getBookList
May 18, 2025
379fda8
debug logging removed
May 18, 2025
bba48cc
unused var chosenEngine removed
May 25, 2025
a8b195b
split var annotatedata in options and internal _data
May 25, 2025
dcd9cef
use array var for options and internal _data for sergame data
May 25, 2025
35b5e0a
new proc ::engineNoWin::closeEngine
Jun 4, 2025
670f503
Merge branch 'AnalyzeNewEngine'
Jun 4, 2025
ba8bbb8
use proc ::engineNoWin::closeEngine
Jun 4, 2025
64fb102
Show correct value on player blunder
Sep 2, 2025
d300484
Player can select color to play
Sep 2, 2025
51c7da2
do not destroy changed but not saved engine config
Sep 19, 2025
6dbbe17
when player takes back a move, store it as variation
Sep 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions tcl/enginecomm.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -761,13 +761,9 @@ proc ::uci::parseline {id line} {
}

if {[string match "bestmove *" $line]} {
lassign [split $line] -> ::engconn(InfoBestMove_$id) ponder ponder_move
#TODO:
# lassign [lsearch -inline -index 0 $::engconn(options_$id) "Ponder"] -> do_ponder
# if {$do_ponder eq "true" && $ponder eq "ponder"}
# set ::engconn(waitReply_$id) "Go?"
# ::engine::rawsend $id position ...
# ::engine::rawsend $id go ponder ...
# assign ponder move as well
# starting ponder should not be done here because other parameter like time or depth not available here
set ::engconn(InfoBestMove_$id) [lrange [split $line] 1 3]
return 1
}

Expand Down
2 changes: 1 addition & 1 deletion tcl/lang/deutsch.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ menuText D ToolsTracker "Figurenverteilung" 7 \
{Figurenverteilungsfenster �ffnen}
menuText D ToolsTraining "Training" 0 {Trainingswerkzeuge (Taktik, Er�ffnungen,...) }
menuText D ToolsTacticalGame "Trainingspartie" 0 {Trainingspartie spielen}
menuText D ToolsSeriousGame "Ernste Partie" 0 {Ernste Partie spielen}
menuText D ToolsSeriousGame "Partie spielen" 0 {Eine Partie gegen eine Engine spielen}
menuText D ToolsTrainOpenings "Er�ffnungen" 0 {Er�ffnungsrepertoire trainieren}
menuText D ToolsTrainReviewGame "Partie nachspielen" 0 {Finden von Z�gen wie in vorgegebener Partie}
menuText D ToolsTrainTactics "Taktik" 0 {Taktische Stellungen l�sen}
Expand Down
2 changes: 1 addition & 1 deletion tcl/lang/english.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ menuText E ToolsOpenRecentBaseAsTree "Open recent base as tree" 0 {Open a rece
menuText E ToolsTracker "Piece Tracker" 6 {Open the Piece Tracker window}
menuText E ToolsTraining "Training" 0 {Training tools (tactics, openings,...) }
menuText E ToolsTacticalGame "Tactical game" 0 {Play a game with tactics}
menuText E ToolsSeriousGame "Serious game" 0 {Play a serious game}
menuText E ToolsSeriousGame "Play against engine" 0 {Play a game against an engine}
menuText E ToolsTrainOpenings "Openings" 0 {Train with a repertoire}
menuText E ToolsTrainReviewGame "Review game" 0 {Guess moves played in a game}
menuText E ToolsTrainTactics "Tactics" 0 {Solve tactics}
Expand Down
3 changes: 2 additions & 1 deletion tcl/menus.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,6 @@ set m .menu.play
menu $m -postcommand "updateMenuStates $m"
.menu add cascade -label Play -menu $m
$m add command -label ToolsSeriousGame -command ::sergame::config
$m add command -label ToolsTacticalGame -command ::tacgame::config
$m add command -label ToolsTrainFics -command ::fics::config
$m add separator
menu $m.training
Expand Down Expand Up @@ -250,6 +249,8 @@ $m add command -label ToolsStartEngine1 \
-command "::enginewin::start 1" -accelerator "F2"
$m add command -label ToolsStartEngine2 \
-command "::enginewin::start 2" -accelerator "F3"
$m add command -label "Annotate Game(s)" -command "::annotation::doAnnotate"
$m add command -label "Finish Game" -command "::finishgame::finishGameDialog"
$m add command -label ToolsAnalysis -command "makeAnalysisWin 1"
$m add separator
$m add checkbutton -label ToolsFilterGraph \
Expand Down
112 changes: 51 additions & 61 deletions tcl/options.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -125,19 +125,26 @@ proc InitDefaultFonts {} {
}

proc InitDefaultAnnotate {} {
set ::isBatchOpening 0
set ::isBatchOpeningMoves 12
set ::isBatch 0
set ::markTacticalExercises 0
set ::isAnnotateVar 0
set ::isShortAnnotation 0
set ::addScoreToShortAnnotations 0
set ::addAnnotatorTag 0
set ::annotateMoves all
set ::annotateBlunders blundersonly
set ::scoreAllMoves 0
# Blunder Threshold
set ::blunderThreshold 1.0
set ::annotation::options(typ) "movetime"
set ::annotation::options(movetime) 1000
set ::annotation::options(time) 1
set ::annotation::options(depth) 20
set ::annotation::options(engine) ""
set ::annotation::options(blunderThreshold) 0.5
set ::annotation::options(annotateMoves) all
set ::annotation::options(annotateBlunders) blundersonly
set ::annotation::options(scoreAllMoves) 1
set ::annotation::options(useAnalysisBook) 0
set ::annotation::options(AnalysisBookName) ""
set ::annotation::options(tacticalExercises) 0
set ::annotation::options(addAnnotatorTag) 1
set ::annotation::options(OpeningErrors) 0
set ::annotation::options(OpeningMoves) 8
set ::annotation::options(annotateShort) 1
set ::annotation::options(addScoreToShortAnnotations) 1
set ::annotation::options(batchMode) 0
set ::annotation::options(batchEnd) 0
set ::annotation::options(anzVariation) 1
}

InitDefaultFonts
Expand Down Expand Up @@ -234,24 +241,6 @@ set windowsDock 1

set ::tactics::analysisTime 3

set ::tacgame::threshold 0.9
set ::tacgame::blunderwarning false
set ::tacgame::blunderwarningvalue 0.0
set ::tacgame::levelMin 1200
set ::tacgame::levelMax 2200
set ::tacgame::levelFixed 1500
set ::tacgame::randomLevel 0
set ::tacgame::isLimitedAnalysisTime 1
set ::tacgame::showblunder 1
set ::tacgame::showblundervalue 1
set ::tacgame::showblunderfound 1
set ::tacgame::showmovevalue 1
set ::tacgame::showevaluation 1
set ::tacgame::isLimitedAnalysisTime 1
set ::tacgame::analysisTime 10
set ::tacgame::openingType new
set ::tacgame::chosenOpening 0

# Analysis command: to start chess analysis engine.
set analysisCommand ""
if {$windowsOS} {
Expand Down Expand Up @@ -328,22 +317,30 @@ set ::pinfo::dnburl "http://d-nb.info/gnd"
set ::novag::referee "OFF"

# Defaults for serious game training
set ::sergame::isOpening 0
set ::sergame::chosenOpening 0
set ::sergame::chosenEngine 0
set ::sergame::useBook 1
set ::sergame::bookToUse ""
set ::sergame::startFromCurrent 0
set ::sergame::coachIsWatching 0
set ::sergame::timeMode "timebonus"
set ::sergame::depth 3
set ::sergame::movetime 0
set ::sergame::nodes 10000
set ::sergame::ponder 0
set ::uci::uciInfo(wtime3) [expr 5 * 60 * 1000 ]
set ::uci::uciInfo(winc3) [expr 10 * 1000 ]
set ::uci::uciInfo(btime3) [expr 5 * 60 * 1000 ]
set ::uci::uciInfo(binc3) [expr 10 * 1000 ]
set ::sergame::options(isOpening) 0
set ::sergame::options(chosenOpening) 0
set ::sergame::options(useBook) 1
set ::sergame::options(bookToUse) ""
set ::sergame::options(startFromCurrent) 0
set ::sergame::options(coachIsWatching) 0
set ::sergame::options(timeMode) "timebonus"
set ::sergame::options(depth) 3
set ::sergame::options(movetime) 1000
set ::sergame::options(nodes) 10000
set ::sergame::options(engineName) ""
set ::sergame::options(coachName) ""
set ::sergame::options(storeEval) 0
set ::sergame::options(coachTypeMove) 0
set ::sergame::options(coachTypeTactic) 0
set ::sergame::options(useCoachEngine) 0
set ::sergame::options(threshold) 0.6
set ::sergame::options(tacTime) 5
set ::sergame::options(ponder) 0
set ::sergame::options(isLimitedAnalysisTime) 1
set ::sergame::options(wtime) [expr 5 * 60 * 1000 ]
set ::sergame::options(winc) [expr 10 * 1000 ]
set ::sergame::options(btime) [expr 5 * 60 * 1000 ]
set ::sergame::options(binc) [expr 10 * 1000 ]

# Defaults for initial directories:
set initialDir(base) "."
Expand Down Expand Up @@ -650,24 +647,17 @@ proc options.write {} {
engineCoach1 engineCoach2 scidBooksDir scidBasesDir ::book::lastBook \
::utils::sound::soundFolder ::utils::sound::announceNew \
::utils::sound::announceForward ::utils::sound::announceBack \
::tacgame::threshold ::tacgame::blunderwarning ::tacgame::blunderwarningvalue \
::tacgame::levelMin ::tacgame::levelMax ::tacgame::levelFixed ::tacgame::randomLevel \
::tacgame::isLimitedAnalysisTime ::tacgame::showblunder ::tacgame::showblundervalue \
::tacgame::showblunderfound ::tacgame::showmovevalue ::tacgame::showevaluation \
::tacgame::isLimitedAnalysisTime ::tacgame::analysisTime ::tacgame::openingType ::tacgame::chosenOpening \
::sergame::chosenOpening ::sergame::chosenEngine ::sergame::useBook ::sergame::bookToUse \
::sergame::startFromCurrent ::sergame::coachIsWatching ::sergame::timeMode \
::sergame::depth ::sergame::movetime ::sergame::nodes ::sergame::ponder ::sergame::isOpening \
::uci::uciInfo(wtime3) ::uci::uciInfo(winc3) ::uci::uciInfo(btime3) ::uci::uciInfo(binc3) \
boardfile_lite boardfile_dark \
FilterMaxMoves FilterMinMoves FilterStepMoves FilterMaxElo FilterMinElo FilterStepElo \
FilterMaxYear FilterMinYear FilterStepYear FilterGuessELO lookTheme ThemePackageFile autoResizeBoard \
isBatchOpening isBatchOpeningMoves isBatch \
markTacticalExercises scoreAllMoves \
isAnnotateVar isShortAnnotation addScoreToShortAnnotations annotateBlunders\
addAnnotatorTag annotateMoves } {
FilterMaxYear FilterMinYear FilterStepYear FilterGuessELO lookTheme ThemePackageFile autoResizeBoard } {
puts $optionF "set $i [list [set $i]]"
}
foreach i [lsort [array names ::sergame::options]] {
puts $optionF "set ::sergame::options($i) [list $::sergame::options($i)]"
}
foreach i [lsort [array names ::annotation::options]] {
puts $optionF "set ::annotation::options($i) [list $::annotation::options($i)]"
}

puts $optionF ""
foreach i [lsort [array names winWidth]] {
Expand Down
7 changes: 5 additions & 2 deletions tcl/start.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ InitTooltip
# initialized here, so that default values can be set up and
# altered when the user options file is loaded.
#
#ToDo remove tacgame from list, but prevent error from options.dat
foreach ns {
::icon
::splash
Expand All @@ -242,7 +243,7 @@ foreach ns {
::tools::graphs
::tools::graphs::filter ::tools::graphs::absfilter ::tools::graphs::rating ::tools::graphs::score
::tb ::optable
::board ::move
::board ::move ::annotation
::tacgame ::sergame ::opening ::tactics ::calvar ::uci ::fics ::reviewgame ::novag
::config ::docking
::pinfo
Expand Down Expand Up @@ -744,6 +745,9 @@ tools/optable.tcl
tools/preport.tcl
tools/pinfo.tcl
tools/analysis.tcl
tools/enginenowin.tcl
tools/annotate.tcl
tools/finishgame.tcl
tools/wbdetect.tcl
tools/graphs.tcl
tools/ptracker.tcl
Expand All @@ -756,7 +760,6 @@ move.tcl
main.tcl
tools/uci.tcl
end.tcl
tools/tacgame.tcl
tools/sergame.tcl
tools/calvar.tcl
tools/fics.tcl
Expand Down
Loading