آیا می توانید در یک صفحه ی شطرنج هشت وزیر بگنجانید که نتوانند همدیگر را بگیرند
این برنامه تمام حالات را چک می کند و تمام حالات ممکن را چاپ می کند
DIM a(1 TO 8) AS INTEGER
CLS
arzesh = 0
PRINT "vazir"
FOR a = 1 TO 8
a(1) = a
FOR b = 1 TO 8
a(2) = b
FOR i = 1 TO 1
FOR j = 1 TO 2
IF i = j THEN j = j + 1
arzesh = (ABS(i - j) = ABS(a(i) - a(j))) OR (a(i) = a(j))
IF arzesh = -1 THEN EXIT FOR
NEXT j
IF arzesh = -1 THEN EXIT FOR
NEXT i
FOR c = 1 TO 8
IF arzesh <> 0 THEN
arzesh = 0
EXIT FOR
END IF
a(3) = c
FOR i = 1 TO 2
FOR j = 1 TO 3
IF i = j THEN j = j + 1
arzesh = (ABS(i - j) = ABS(a(i) - a(j))) OR (a(i) = a(j))
IF arzesh = -1 THEN EXIT FOR
NEXT j
IF arzesh = -1 THEN EXIT FOR
NEXT i
FOR d = 1 TO 8
IF arzesh <> 0 THEN
arzesh = 0
EXIT FOR
END IF
a(4) = d
FOR i = 1 TO 3
FOR j = 1 TO 4
IF i = j THEN j = j + 1
arzesh = (ABS(i - j) = ABS(a(i) - a(j))) OR (a(i) = a(j))
IF arzesh = -1 THEN EXIT FOR
NEXT j
IF arzesh = -1 THEN EXIT FOR
NEXT i
FOR e = 1 TO 8
IF arzesh <> 0 THEN
arzesh = 0
EXIT FOR
END IF
a(5) = e
FOR i = 1 TO 4
FOR j = 1 TO 5
IF i = j THEN j = j + 1
arzesh = (ABS(i - j) = ABS(a(i) - a(j))) OR (a(i) = a(j))
IF arzesh = -1 THEN EXIT FOR
NEXT j
IF arzesh = -1 THEN EXIT FOR
NEXT i
FOR f = 1 TO 8
IF arzesh <> 0 THEN
arzesh = 0
EXIT FOR
END IF
a(6) = f
FOR i = 1 TO 5
FOR j = 1 TO 6
IF i = j THEN j = j + 1
arzesh = (ABS(i - j) = ABS(a(i) - a(j))) OR (a(i) = a(j))
IF arzesh = -1 THEN EXIT FOR
NEXT j
IF arzesh = -1 THEN EXIT FOR
NEXT i
FOR g = 1 TO 8
a(7) = g
IF arzesh <> 0 THEN
arzesh = 0
EXIT FOR
END IF
FOR i = 1 TO 6
FOR j = 1 TO 7
IF i = j THEN j = j + 1
arzesh = (ABS(i - j) = ABS(a(i) - a(j))) OR (a(i) = a(j))
IF arzesh = -1 THEN EXIT FOR
NEXT j
IF arzesh = -1 THEN EXIT FOR
NEXT i
FOR h = 1 TO 8
IF arzesh <> 0 THEN
arzesh = 0
EXIT FOR
END IF
a(8) = h
'FOR s = 1 TO 8
' PRINT a(s);
'NEXT
' PRINT
FOR i = 1 TO 7
FOR j = 1 TO 8
IF i = j THEN j = j + 1
IF j = 9 THEN EXIT FOR
arzesh = (ABS(i - j) = ABS(a(i) - a(j))) OR (a(i) = a(j))
IF arzesh = -1 THEN EXIT FOR
NEXT j
IF arzesh = -1 THEN EXIT FOR
NEXT i
IF arzesh = 0 THEN
x = x + 1
PRINT
PRINT
PRINT
PRINT x,
FOR v = 1 TO 8
PRINT a(v);
NEXT
mnb$ = INPUT$(1)
ELSE
arzesh = 0
END IF
NEXT h
NEXT g
NEXT f
NEXT e
NEXT d
NEXT c
NEXT b
NEXT a
END