我试图教自己用Tcl编程.我自己设定的任务是激励我学习Tcl是为了解决8皇后问题.我创建程序的方法是先后"原型化"解决方案.
我已经问过一个与正确布局嵌套for循环相关的早期问题并得到了一个有用的答案.
令我沮丧的是,我发现我的代码的下一个开发会产生相同的解释器错误:"wrong#args"
我一直小心在while循环命令之前的行末尾有一个开括号.我也尝试将while循环的参数放在括号中.这会产生不同的错误.我真诚地试图理解Tcl语法手册页 - 不太成功 - 由我之前的问题的回答者提出.这是代码
set allowd 1
set notallowd 0
for {set r1p 1} {$r1p <= 8} {incr r1p } {
puts "1st row q placed at $r1p"
;# re-initialize r2 'free for q placemnt' array after every change of r1 q pos:
for {set i 1 } {$i <= 8} {incr i} { set r2($i) $allowd }
for { set r2($r1p) $notallowd ; set r2([expr $r1p-1]) $notallowd ;
set r2([expr $r1p+1]) $notallowd ; set r2p …Run Code Online (Sandbox Code Playgroud) 我试图教自己用Tcl编程.(我想更熟悉语言以理解其他人的代码 - SCID国际象棋)我自己设定的任务是激励我学习Tcl是为了解决8皇后问题.我创建程序的方法是过度"原型化"解决方案.所以.我要在for循环中嵌套一个for循环,在第2行中持有q pos的第2行中的q pos
这是我的代码
set allowd 1
set notallowd 0
for {set r1p 1} {$r1p <= 8} {incr r1p } {
puts "1st row q placed at $r1p"
;# re-initialize r2 'free for q placemnt' array after every change of r1 q pos:
for {set i 1 } {$i <= 8} {incr i} { set r2($i) $allowd }
for { set r2($r1p) $notallowd ; set r2([eval $r1p-1]) $notallowd ;
set r2([eval $r1p+1]) $notallowd ; set r2p 1} {$r2p …Run Code Online (Sandbox Code Playgroud) tcl ×2