#!/usr/bin/tclsh set result {0 0 0 0 0 0 0 0 0} proc napisReseni {} { global result set res [lrange $result 1 9] puts "$res" } proc otestuj {col row} { global result if {$row == 1} {return 1} set plus "1" set tmp "0" set i [expr $row - 1] while {$i > 0} { if {$col == [lindex $result $i]} {return 0} set tmp [expr $col + $plus] if {$tmp == [lindex $result $i]} {return 0} set tmp [expr $col - $plus] if {$tmp == [lindex $result $i]} {return 0} set tmp [expr $plus + 1] set i [expr $i - 1] } return 1 } proc init {col row} { global result if {0 == [otestuj $col $row]} {return} set result [lreplace $result $row $row $col] if {$row == 8} { napisReseni return } set dalsi [expr $row + 1] init "1" $dalsi init "2" $dalsi init "3" $dalsi init "4" $dalsi init "5" $dalsi init "6" $dalsi init "7" $dalsi init "8" $dalsi } proc runit {} { init "0" "0" } runit