DECLARE SUB EIGHTQUEEN (A() AS INTEGER, ROW AS INTEGER)
CLS
DIM A(1 TO 8) AS INTEGER
CALL EIGHTQUEEN(A(), 1)
END
SUB EIGHTQUEEN (A() AS INTEGER, ROW AS INTEGER)
STATIC COUNTER AS INTEGER
FOR COL = 1 TO 8
FOR I = 1 TO ROW - 1
IF ABS(ROW - I) = ABS(A(I) - COL) OR COL = A(I) THEN EXIT FOR
NEXT
IF I = ROW THEN
A(ROW) = COL
IF ROW = 8 THEN
COUNTER = COUNTER + 1
PRINT "== " + LTRIM$(STR$(COUNTER)) + " =="
FOR M = 1 TO 8
FOR N = 1 TO 8
IF A(M) = N THEN PRINT "#"; ELSE PRINT "*";
NEXT
PRINT
NEXT
'WHILE INKEY$ = ""
'WEND
ELSE
CALL EIGHTQUEEN(A(), ROW + 1)
END IF
END IF
NEXT
END SUB