I think you also need to check the diagonals of fliplr(a). The tests did not include multiple queens on any of those diagonals.
Test | Status | Code Input and Output |
---|---|---|
1 | Pass |
%% Eight Queens Solution Checker Test Suite
|
2 | Pass |
%%
% Unique solution #6 from
% http://en.wikipedia.org/wiki/Eight_queens_puzzle
in1 = [ ...
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 ];
out1 = isEightQueensSolution(in1);
assert(islogical(out1));
assert(isequal(out1, 1));
|
3 | Pass |
%%
% Unique solution #7
in2 = [ ...
0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 ];
out2 = isEightQueensSolution(in2);
assert(isequal(out2, 1));
|
4 | Pass |
%%
% Unique solution #10
in3 = [ ...
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0 ];
out3 = isEightQueensSolution(in3);
assert(isequal(out3, 1));
|
5 | Pass |
%%
% Unique solution #11
in4 = [ ...
0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 ];
out4 = isEightQueensSolution(in4);
assert(isequal(out4, 1));
|
6 | Pass |
%%
in5 = [ ...
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 ];
out5 = isEightQueensSolution(in5);
assert(isequal(out5, 0));
|
7 | Pass |
%%
in6 = [ ...
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 ];
out6 = isEightQueensSolution(in6);
assert(isequal(out6, 0));
|
8 | Pass |
%%
in7 = [ ...
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 ];
out7 = isEightQueensSolution(in7);
assert(isequal(out7, 0));
|
9 | Pass |
%%
in8 = [ ...
0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 ];
out8 = isEightQueensSolution(in8);
assert(isequal(out8, 0));
|
10 | Pass |
%%
% Only 7 queens
in9 = [ ...
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 ];
out9 = isEightQueensSolution(in9);
assert(isequal(out9, 0));
|
11 | Pass |
%%
% Row and column constraint satisfied but
% not diagonal constraint.
in10 = eye(8);
out10 = isEightQueensSolution(in10);
assert(isequal(out10, 0));
|
Create a cell array out of a struct
508 Solvers
613 Solvers
746 Solvers
Set the array elements whose value is 13 to 0
941 Solvers
276 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!