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: 193

Filed under:

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

Related posts about tcl