queens.tig

来自「tiger编译器的Java实现」· TIG 代码 · 共 34 行

TIG
34
字号
/* A program to solve the 8-queens problem */let    var N := 8    type intArray = array of int    var row := intArray [ N ] of 0    var col := intArray [ N ] of 0    var diag1 := intArray [N+N-1] of 0    var diag2 := intArray [N+N-1] of 0    function printboard() =       (for i := 0 to N-1	 do (for j := 0 to N-1 	      do print(if col[i]=j then " O" else " .");	     print("\n"));         print("\n"))    function try(c:int) = ( /*  for i:= 0 to c do print("."); print("\n"); flush();*/     if c=N     then printboard()     else for r := 0 to N-1	   do if row[r]=0 & diag1[r+c]=0 & diag2[r+7-c]=0	           then (row[r]:=1; diag1[r+c]:=1; diag2[r+7-c]:=1;		         col[c]:=r;	                 try(c+1);			 row[r]:=0; diag1[r+c]:=0; diag2[r+7-c]:=0)) in try(0)end	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?