Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
112
Task/N-queens-problem/Run-BASIC/n-queens-problem.basic
Normal file
112
Task/N-queens-problem/Run-BASIC/n-queens-problem.basic
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
[loop]
|
||||
input "How many queens (N>=4)";n
|
||||
if n < 4 then
|
||||
print "Must be greater than 4"
|
||||
goto [loop]
|
||||
end if
|
||||
|
||||
dim plot$(100,100)
|
||||
dim q(n+20)
|
||||
dim e(n+20)
|
||||
dim o(n+20)
|
||||
r=n mod 6
|
||||
if r<>2 and r<>3 then
|
||||
gosub [samp]
|
||||
goto [shoBoard]
|
||||
end if
|
||||
for i=1 to int(n/2)
|
||||
e(i) = 2 * i
|
||||
next
|
||||
for i=1 to int((n/2)+.5)
|
||||
o(i) = 2 *i-1
|
||||
next
|
||||
if r = 2 then gosub [edt2]
|
||||
if r = 3 then gosub [edt3]
|
||||
s = 1
|
||||
for i=1 to n
|
||||
if e(i)>0 then
|
||||
q(s) = e(i)
|
||||
s = s+1
|
||||
end if
|
||||
next
|
||||
for i=1 to n
|
||||
if o(i) > 0 then
|
||||
q(s) = o(i)
|
||||
s = s + 1
|
||||
end if
|
||||
next
|
||||
' print board
|
||||
[shoBoard]
|
||||
cls
|
||||
for i = 1 to n
|
||||
plot$(i,26-q(i)) = "*"
|
||||
plot$(i,24-n) = chr$(96+i)
|
||||
plot$(n+1,26-i) = str$(i)
|
||||
next i
|
||||
for ii = 1 to 100
|
||||
for jj = 1 to 100
|
||||
print left$(plot$(jj,ii)+" ",1);
|
||||
next jj
|
||||
print
|
||||
next ii
|
||||
end
|
||||
|
||||
' the simple case
|
||||
[samp]
|
||||
p = 1
|
||||
for i = 1 to n
|
||||
if i mod 2=0 then
|
||||
q(p) = i
|
||||
p = p + 1
|
||||
end if
|
||||
next i
|
||||
for i = 1 to n
|
||||
if i mod 2 then
|
||||
q(p) = i
|
||||
p = p + 1
|
||||
end if
|
||||
next
|
||||
return
|
||||
' edit list when remainder is 2
|
||||
[edt2]
|
||||
for i=1 to n
|
||||
if o(i) = 3 then
|
||||
o(i) = 1
|
||||
else
|
||||
if o(i)=1 then o(i) = 3
|
||||
end if
|
||||
if o(i) = 5 then
|
||||
o(i)= o(i) -1
|
||||
else
|
||||
if o(i) = 0 then
|
||||
o(i) = 5
|
||||
return
|
||||
end if
|
||||
end if
|
||||
next
|
||||
|
||||
' edit list when remainder is 3
|
||||
[edt3]
|
||||
for i = 1 to n
|
||||
if e(i) = 2 then
|
||||
e(i) = e(i)-1
|
||||
else
|
||||
if e(i) = 0 then
|
||||
e(i) = 2
|
||||
goto [more]
|
||||
end if
|
||||
end if
|
||||
next i
|
||||
' edit list some more
|
||||
[more]
|
||||
for i = 1 to n
|
||||
if (o(i)=1 or o(i)=3) then
|
||||
o(i) = o(i)-1
|
||||
else
|
||||
if o(i) = 0 then
|
||||
o(i) = 1
|
||||
o(i+1) = 3
|
||||
return
|
||||
end if
|
||||
end if
|
||||
next
|
||||
Loading…
Add table
Add a link
Reference in a new issue