Attempt to create nested for loops generating missing arguments error
Posted
by
JerryK
on Stack Overflow
See other posts from Stack Overflow
or by JerryK
Published on 2011-01-03T19:54:26Z
Indexed on
2011/01/05
12:53 UTC
Read the original article
Hit count: 196
tcl
Am attempting to teach myself to program using Tcl. (I want to become more familiar with the language to understand someone else's code - SCID chess) The task i've set myself to motivate my learing of Tcl is to solve the 8 queens problem. My approach to creating a program is to sucessively 'prototype' a solution. So. I'm up to nesting a for loop holding the q pos on row 2 inside the for loop holding the q pos on row 1
Here is my code
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 <= 8} {
incr r2p ;# end of 'next' arg of r2 forloop
}
;# commnd arg of r2 forloop placed below:
{puts "2nd row q placed at $r2p"
}
}
My problem is that when i run the code the interpreter is aborting with the fatal error: "wrong #args should be for start test next command.
I've gone over my code a few times and can't see that i've missed any of the for loop arguments.
© Stack Overflow or respective owner