Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
61
Task/N-queens-problem/BBC-BASIC/n-queens-problem.basic
Normal file
61
Task/N-queens-problem/BBC-BASIC/n-queens-problem.basic
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
Size% = 8
|
||||
Cell% = 32
|
||||
VDU 23,22,Size%*Cell%;Size%*Cell%;Cell%,Cell%,16,128+8,5
|
||||
*font Arial Unicode MS,16
|
||||
GCOL 3,11
|
||||
FOR i% = 0 TO Size%-1 STEP 2
|
||||
RECTANGLE FILL i%*Cell%*2,0,Cell%*2,Size%*Cell%*2
|
||||
RECTANGLE FILL 0,i%*Cell%*2,Size%*Cell%*2,Cell%*2
|
||||
NEXT
|
||||
num% = FNqueens(Size%, Cell%)
|
||||
SYS "SetWindowText", @hwnd%, "Total " + STR$(num%) + " solutions"
|
||||
REPEAT : WAIT 1 : UNTIL FALSE
|
||||
END
|
||||
|
||||
DEF FNqueens(n%, s%)
|
||||
LOCAL i%, j%, m%, p%, q%, r%, a%(), b%(), c%()
|
||||
DIM a%(n%), b%(n%), c%(4*n%-2)
|
||||
FOR i% = 1 TO DIM(a%(),1) : a%(i%) = i% : NEXT
|
||||
m% = 0
|
||||
i% = 1
|
||||
j% = 0
|
||||
r% = 2*n%-1
|
||||
REPEAT
|
||||
i% -= 1
|
||||
j% += 1
|
||||
p% = 0
|
||||
q% = -r%
|
||||
REPEAT
|
||||
i% += 1
|
||||
c%(p%) = 1
|
||||
c%(q%+r%) = 1
|
||||
SWAP a%(i%),a%(j%)
|
||||
p% = i% - a%(i%) + n%
|
||||
q% = i% + a%(i%) - 1
|
||||
b%(i%) = j%
|
||||
j% = i% + 1
|
||||
UNTIL j% > n% OR c%(p%) OR c%(q%+r%)
|
||||
IF c%(p%)=0 IF c%(q%+r%)=0 THEN
|
||||
IF m% = 0 THEN
|
||||
FOR p% = 1 TO n%
|
||||
MOVE 2*s%*(a%(p%)-1)+6, 2*s%*p%+6
|
||||
PRINT "♛";
|
||||
NEXT
|
||||
ENDIF
|
||||
m% += 1
|
||||
ENDIF
|
||||
j% = b%(i%)
|
||||
WHILE j% >= n% AND i% <> 0
|
||||
REPEAT
|
||||
SWAP a%(i%), a%(j%)
|
||||
j% = j%-1
|
||||
UNTIL j% < i%
|
||||
i% -= 1
|
||||
p% = i% - a%(i%) + n%
|
||||
q% = i% + a%(i%) - 1
|
||||
j% = b%(i%)
|
||||
c%(p%) = 0
|
||||
c%(q%+r%) = 0
|
||||
ENDWHILE
|
||||
UNTIL i% = 0
|
||||
= m%
|
||||
Loading…
Add table
Add a link
Reference in a new issue