Test | Status | Code Input and Output |
---|---|---|
1 | Pass |
board = [1 1 0 2 2
1 0 0 0 2
0 0 0 0 0
0 2 2 0 0
2 1 1 2 0];
moves = lights_out_13(board); % [1 1 10 15 21]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2 2
moves =
2 2 7 7
moves =
2 2 7 7 17
moves =
2 2 7 7 17 22
moves =
2 2 7 7 17 22 3
moves =
2 2 7 7 17 22 3 8 8
moves =
2 2 7 7 17 22 3 8 8 18
moves =
2 2 7 7 17 22 3 8 8 18 23 23
moves =
2 2 7 7 17 22 3 8 8 18 23 23 4
moves =
2 2 7 7 17 22 3 8 8 18 23 23 4 9
moves =
2 2 7 7 17 22 3 8 8 18 23 23 4 9 19 19
moves =
2 2 7 7 17 22 3 8 8 18 23 23 4 9 19 19 24 24
moves =
2 2 7 7 17 22 3 8 8 18 23 23 4 9 19 19 24 24 15
moves =
2 2 7 7 17 22 3 8 8 18 23 23 4 9 19 19 24 24 15 20
|
2 | Pass |
board = [2 2 0 2 2
0 0 2 0 0
2 2 2 2 2
0 0 2 0 0
2 2 0 2 2];
moves = lights_out_13(board); % [6:2:20]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2
moves =
2 7
moves =
2 7 17
moves =
2 7 17 22
moves =
2 7 17 22 3
moves =
2 7 17 22 3 8
moves =
2 7 17 22 3 8 13 13
moves =
2 7 17 22 3 8 13 13 18
moves =
2 7 17 22 3 8 13 13 18 23
moves =
2 7 17 22 3 8 13 13 18 23 4
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9 19 19
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9 19 19 24
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9 19 19 24 5 5
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9 19 19 24 5 5 10 10
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9 19 19 24 5 5 10 10 15
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9 19 19 24 5 5 10 10 15 20 20
moves =
2 7 17 22 3 8 13 13 18 23 4 9 9 19 19 24 5 5 10 10 15 20 20 25 25
moves =
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2
moves =
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7
moves =
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Column 31
3
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 32
3 8
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 33
3 8 13
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 35
3 8 13 18 18
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 37
3 8 13 18 18 9 9
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 38
3 8 13 18 18 9 9 14
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 39
3 8 13 18 18 9 9 14 24
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 41
3 8 13 18 18 9 9 14 24 10 10
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 43
3 8 13 18 18 9 9 14 24 10 10 15 15
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 45
3 8 13 18 18 9 9 14 24 10 10 15 15 20 20
moves =
Columns 1 through 30
2 3 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 23 24 25 25 2 7 12
Columns 31 through 47
3 8 13 18 18 9 9 14 24 10 10 15 15 20 20 25 25
|
3 | Pass |
board = [1 1 0 2 0
1 0 2 2 2
2 0 0 1 0
1 1 2 2 2
0 1 2 2 0];
moves = lights_out_13(board); % [1 1 4 5 10 17 19]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2 2
moves =
2 2 7 7
moves =
2 2 7 7 17
moves =
2 2 7 7 17 3
moves =
2 2 7 7 17 3 8 8
moves =
2 2 7 7 17 3 8 8 13
moves =
2 2 7 7 17 3 8 8 13 4 4
moves =
2 2 7 7 17 3 8 8 13 4 4 5 5
moves =
2 2 7 7 17 3 8 8 13 4 4 5 5 10
moves =
2 2 7 7 17 3 8 8 13 4 4 5 5 10 20
moves =
2 2 7 7 17 3 8 8 13 4 4 5 5 10 20 25
moves =
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2
moves =
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7
moves =
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3
moves =
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3 8
moves =
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3 8 13 13
moves =
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3 8 13 13 4 4
moves =
Columns 1 through 30
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3 8 13 13 4 4
Column 31
19
moves =
Columns 1 through 30
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3 8 13 13 4 4
Columns 31 through 33
19 5 5
moves =
Columns 1 through 30
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3 8 13 13 4 4
Columns 31 through 35
19 5 5 20 20
moves =
Columns 1 through 30
1 1 2 2 3 4 4 5 5 6 6 6 7 7 8 8 10 13 17 20 25 2 7 3 3 8 13 13 4 4
Columns 31 through 37
19 5 5 20 20 25 25
|
4 | Pass |
board = [2 1 0 1 2
1 2 2 2 1
0 2 1 2 0
1 2 2 2 1
2 1 0 1 2];
moves = lights_out_13(board); % [1 5 7 9 13 13 17 19 21 25]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2
moves =
2 7 7
moves =
2 7 7 17 17
moves =
2 7 7 17 17 22
moves =
2 7 7 17 17 22 3 3
moves =
2 7 7 17 17 22 3 3 8
moves =
2 7 7 17 17 22 3 3 8 18
moves =
2 7 7 17 17 22 3 3 8 18 23 23
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4 9 9
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4 9 9 19 19
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4 9 9 19 19 24 24
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4 9 9 19 19 24 24 5 5
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4 9 9 19 19 24 24 5 5 10 10
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4 9 9 19 19 24 24 5 5 10 10 20 20
moves =
2 7 7 17 17 22 3 3 8 18 23 23 4 4 9 9 19 19 24 24 5 5 10 10 20 20 25 25
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 34
24 25 25 2
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 35
24 25 25 2 7
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 37
24 25 25 2 7 3 3
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 38
24 25 25 2 7 3 3 8
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 40
24 25 25 2 7 3 3 8 13 13
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 42
24 25 25 2 7 3 3 8 13 13 4 4
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 43
24 25 25 2 7 3 3 8 13 13 4 4 19
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 45
24 25 25 2 7 3 3 8 13 13 4 4 19 5 5
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 47
24 25 25 2 7 3 3 8 13 13 4 4 19 5 5 20 20
moves =
Columns 1 through 30
1 1 2 3 3 4 4 5 5 6 6 6 7 7 8 9 9 10 10 17 17 18 19 19 20 20 22 23 23 24
Columns 31 through 49
24 25 25 2 7 3 3 8 13 13 4 4 19 5 5 20 20 25 25
|
5 | Pass |
board = [2 0 2 0 0
1 1 1 0 0
1 0 1 0 0
1 1 1 0 0
2 0 2 0 0];
moves = lights_out_13(board); % [6:10 7:9]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2
moves =
2 12
moves =
2 12 3
moves =
2 12 3 13
moves =
2 12 3 13 18 18
moves =
2 12 3 13 18 18 9
moves =
2 12 3 13 18 18 9 14
moves =
2 12 3 13 18 18 9 14 24
moves =
2 12 3 13 18 18 9 14 24 15 15
moves =
2 12 3 13 18 18 9 14 24 15 15 20 20
moves =
2 12 3 13 18 18 9 14 24 15 15 20 20 25 25
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
moves =
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18 9
moves =
Columns 1 through 30
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18 9
Columns 31 through 32
14 14
moves =
Columns 1 through 30
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18 9
Columns 31 through 34
14 14 24 24
moves =
Columns 1 through 30
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18 9
Columns 31 through 35
14 14 24 24 10
moves =
Columns 1 through 30
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18 9
Columns 31 through 36
14 14 24 24 10 15
moves =
Columns 1 through 30
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18 9
Columns 31 through 37
14 14 24 24 10 15 20
moves =
Columns 1 through 30
2 3 6 9 12 13 14 15 15 18 18 20 20 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18 9
Columns 31 through 38
14 14 24 24 10 15 20 25
|
6 | Pass |
board = [2 0 2 0 2
2 2 1 2 2
2 2 1 2 2
2 2 1 2 2
2 0 2 0 2];
moves = lights_out_13(board); % [6:20]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2
moves =
2 12
moves =
2 12 22
moves =
2 12 22 8 8
moves =
2 12 22 8 8 13
moves =
2 12 22 8 8 13 18 18
moves =
2 12 22 8 8 13 18 18 4
moves =
2 12 22 8 8 13 18 18 4 9
moves =
2 12 22 8 8 13 18 18 4 9 14 14
moves =
2 12 22 8 8 13 18 18 4 9 14 14 19
moves =
2 12 22 8 8 13 18 18 4 9 14 14 19 24
moves =
2 12 22 8 8 13 18 18 4 9 14 14 19 24 5 5
moves =
2 12 22 8 8 13 18 18 4 9 14 14 19 24 5 5 10
moves =
2 12 22 8 8 13 18 18 4 9 14 14 19 24 5 5 10 20
moves =
2 12 22 8 8 13 18 18 4 9 14 14 19 24 5 5 10 20 25 25
moves =
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2
moves =
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7
moves =
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Column 31
8
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 33
8 18 18
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 35
8 18 18 4 4
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 37
8 18 18 4 4 9 9
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 38
8 18 18 4 4 9 9 14
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 39
8 18 18 4 4 9 9 14 19
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 40
8 18 18 4 4 9 9 14 19 24
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 42
8 18 18 4 4 9 9 14 19 24 5 5
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 44
8 18 18 4 4 9 9 14 19 24 5 5 10 10
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 46
8 18 18 4 4 9 9 14 19 24 5 5 10 10 15 15
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 47
8 18 18 4 4 9 9 14 19 24 5 5 10 10 15 15 20
moves =
Columns 1 through 30
1 1 2 4 5 5 6 6 8 8 9 10 12 13 14 14 18 18 19 20 22 24 25 25 2 2 7 7 12 8
Columns 31 through 48
8 18 18 4 4 9 9 14 19 24 5 5 10 10 15 15 20 25
|
7 | Pass |
board = [1 1 2 1 0
0 1 2 1 2
2 2 2 2 2
2 1 1 1 2
2 2 0 2 0];
moves = lights_out_13(board); % [2 2 5 7:8 8 11 13 17:19]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2 2
moves =
2 2 7 7
moves =
2 2 7 7 12
moves =
2 2 7 7 12 17 17
moves =
2 2 7 7 12 17 17 3 3
moves =
2 2 7 7 12 17 17 3 3 13 13
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23 9
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23 9 14 14
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23 9 14 14 19 19
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23 9 14 14 19 19 5
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23 9 14 14 19 19 5 10 10
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23 9 14 14 19 19 5 10 10 15
moves =
2 2 7 7 12 17 17 3 3 13 13 18 18 23 23 9 14 14 19 19 5 10 10 15 20 20
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 32
23 2
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 33
23 2 7
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 35
23 2 7 3 3
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 36
23 2 7 3 3 8
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 38
23 2 7 3 3 8 13 13
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 40
23 2 7 3 3 8 13 13 4 4
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 41
23 2 7 3 3 8 13 13 4 4 19
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 43
23 2 7 3 3 8 13 13 4 4 19 5 5
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 45
23 2 7 3 3 8 13 13 4 4 19 5 5 20 20
moves =
Columns 1 through 30
1 1 2 2 3 3 5 6 6 6 7 7 9 10 10 12 13 13 14 14 15 17 17 18 18 19 19 20 20 23
Columns 31 through 47
23 2 7 3 3 8 13 13 4 4 19 5 5 20 20 25 25
|
8 | Pass |
board = [0 0 0 2 0
0 2 1 2 2
1 2 2 0 1
0 1 2 1 1
2 1 2 2 1];
moves = lights_out_13(board); % [3 3 7 9:11 11 16:18 17 21 21 24 25]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
17
moves =
17 8
moves =
17 8 13
moves =
17 8 13 4
moves =
17 8 13 4 9 9
moves =
17 8 13 4 9 9 14 14
moves =
17 8 13 4 9 9 14 14 19
moves =
17 8 13 4 9 9 14 14 19 24 24
moves =
17 8 13 4 9 9 14 14 19 24 24 10 10
moves =
17 8 13 4 9 9 14 14 19 24 24 10 10 15
moves =
17 8 13 4 9 9 14 14 19 24 24 10 10 15 25 25
moves =
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2
moves =
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7
moves =
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12
moves =
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3
moves =
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8
moves =
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13
moves =
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
moves =
Columns 1 through 30
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
Column 31
9
moves =
Columns 1 through 30
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
Columns 31 through 33
9 14 14
moves =
Columns 1 through 30
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
Columns 31 through 35
9 14 14 24 24
moves =
Columns 1 through 30
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
Columns 31 through 36
9 14 14 24 24 10
moves =
Columns 1 through 30
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
Columns 31 through 37
9 14 14 24 24 10 15
moves =
Columns 1 through 30
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
Columns 31 through 38
9 14 14 24 24 10 15 20
moves =
Columns 1 through 30
4 6 8 9 9 10 10 13 14 14 15 17 19 24 24 25 25 2 2 7 7 12 12 3 3 8 8 13 13 18
Columns 31 through 39
9 14 14 24 24 10 15 20 25
|
9 | Pass |
board = [0 0 0 0 2
0 2 0 1 2
1 2 0 2 0
2 2 2 0 2
1 2 1 0 2];
moves = lights_out_13(board); % [4 8 10 14 18 22 24]
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
22
moves =
22 8
moves =
22 8 18
moves =
22 8 18 4
moves =
22 8 18 4 14
moves =
22 8 18 4 14 24
moves =
22 8 18 4 14 24 10
|
10 | Pass |
board = [0 0 0 0 0
0 1 2 1 0
0 2 0 2 0
0 1 2 1 0
0 0 0 0 0];
moves = lights_out_13(board); % on your own
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
8 8
moves =
8 8 13
moves =
8 8 13 18 18
moves =
8 8 13 18 18 4
moves =
8 8 13 18 18 4 9
moves =
8 8 13 18 18 4 9 14
moves =
8 8 13 18 18 4 9 14 19
moves =
8 8 13 18 18 4 9 14 19 24
moves =
8 8 13 18 18 4 9 14 19 24 5
moves =
8 8 13 18 18 4 9 14 19 24 5 25
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4 9 9
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4 9 9 14
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4 9 9 14 19 19
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4 9 9 14 19 19 24
moves =
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4 9 9 14 19 19 24 5
moves =
Columns 1 through 30
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4 9 9 14 19 19 24 5
Columns 31 through 32
10 10
moves =
Columns 1 through 30
1 4 5 6 6 8 8 9 13 14 18 18 19 24 25 12 3 3 13 13 18 18 4 9 9 14 19 19 24 5
Columns 31 through 34
10 10 15 15
|
11 | Pass |
board = [1 2 0 2 1
2 2 2 2 2
0 2 2 2 0
2 2 2 2 2
1 2 0 2 1];
moves = lights_out_13(board);
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2 2
moves =
2 2 7
moves =
2 2 7 17
moves =
2 2 7 17 22 22
moves =
2 2 7 17 22 22 3
moves =
2 2 7 17 22 22 3 8
moves =
2 2 7 17 22 22 3 8 13 13
moves =
2 2 7 17 22 22 3 8 13 13 18
moves =
2 2 7 17 22 22 3 8 13 13 18 23
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9 19 19
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9 19 19 24 24
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9 19 19 24 24 5 5
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9 19 19 24 24 5 5 10 10
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9 19 19 24 24 5 5 10 10 15
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9 19 19 24 24 5 5 10 10 15 20 20
moves =
2 2 7 17 22 22 3 8 13 13 18 23 4 4 9 9 19 19 24 24 5 5 10 10 15 20 20 25 25
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 32
25 2
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 33
25 2 7
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 34
25 2 7 12
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 35
25 2 7 12 3
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 36
25 2 7 12 3 8
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 37
25 2 7 12 3 8 13
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 39
25 2 7 12 3 8 13 18 18
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 41
25 2 7 12 3 8 13 18 18 9 9
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 42
25 2 7 12 3 8 13 18 18 9 9 14
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 43
25 2 7 12 3 8 13 18 18 9 9 14 24
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 45
25 2 7 12 3 8 13 18 18 9 9 14 24 10 10
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 47
25 2 7 12 3 8 13 18 18 9 9 14 24 10 10 15 15
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 49
25 2 7 12 3 8 13 18 18 9 9 14 24 10 10 15 15 20 20
moves =
Columns 1 through 30
2 2 3 4 4 5 5 6 6 7 8 9 9 10 10 13 13 15 17 18 19 19 20 20 22 22 23 24 24 25
Columns 31 through 51
25 2 7 12 3 8 13 18 18 9 9 14 24 10 10 15 15 20 20 25 25
|
12 | Pass |
board = [1 2 2 2 2
1 1 1 0 0
2 1 1 2 2
1 1 1 0 0
1 2 2 2 2];
moves = lights_out_13(board);
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
2 2
moves =
2 2 7
moves =
2 2 7 12
moves =
2 2 7 12 17
moves =
2 2 7 12 17 22
moves =
2 2 7 12 17 22 3 3
moves =
2 2 7 12 17 22 3 3 8
moves =
2 2 7 12 17 22 3 3 8 13 13
moves =
2 2 7 12 17 22 3 3 8 13 13 23
moves =
2 2 7 12 17 22 3 3 8 13 13 23 4 4
moves =
2 2 7 12 17 22 3 3 8 13 13 23 4 4 9 9
moves =
2 2 7 12 17 22 3 3 8 13 13 23 4 4 9 9 14
moves =
2 2 7 12 17 22 3 3 8 13 13 23 4 4 9 9 14 24 24
moves =
2 2 7 12 17 22 3 3 8 13 13 23 4 4 9 9 14 24 24 5 5
moves =
2 2 7 12 17 22 3 3 8 13 13 23 4 4 9 9 14 24 24 5 5 10 10
moves =
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Column 31
7
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 32
7 3
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 34
7 3 8 8
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 35
7 3 8 8 13
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 36
7 3 8 8 13 4
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 38
7 3 8 8 13 4 19 19
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 39
7 3 8 8 13 4 19 19 5
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 40
7 3 8 8 13 4 19 19 5 20
moves =
Columns 1 through 30
1 2 2 3 3 4 4 5 5 6 6 6 7 8 9 9 10 10 12 13 13 14 17 22 23 24 24 2 2 7
Columns 31 through 41
7 3 8 8 13 4 19 19 5 20 25
|
13 | Pass |
board = [0 0 2 0 2
1 1 0 0 2
1 1 0 1 1
0 1 2 2 2
0 2 0 1 0];
moves = lights_out_13(board);
b1 = diag(ones(1,5),0) + diag(ones(1,4),1) + diag(ones(1,4),-1); b2 = eye(5); b3 = zeros(5);
b_map = [b1,b2,b3,b3,b3;b2,b1,b2,b3,b3;b3,b2,b1,b2,b3;b3,b3,b2,b1,b2;b3,b3,b3,b2,b1];
for i = 1:numel(moves)
board = mod(board + reshape(b_map(moves(i),:),[5,5]),3); %remove semicolon to display progress
end
assert(sum(abs(board(:)))==0)
moves =
12
moves =
12 22
moves =
12 22 3 3
moves =
12 22 3 3 8
moves =
12 22 3 3 8 13 13
moves =
12 22 3 3 8 13 13 18
moves =
12 22 3 3 8 13 13 18 4 4
moves =
12 22 3 3 8 13 13 18 4 4 14
moves =
12 22 3 3 8 13 13 18 4 4 14 19 19
moves =
12 22 3 3 8 13 13 18 4 4 14 19 19 5 5
moves =
12 22 3 3 8 13 13 18 4 4 14 19 19 5 5 10
moves =
12 22 3 3 8 13 13 18 4 4 14 19 19 5 5 10 15 15
moves =
12 22 3 3 8 13 13 18 4 4 14 19 19 5 5 10 15 15 25 25
moves =
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2
moves =
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7
moves =
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3
moves =
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3 8
moves =
Columns 1 through 30
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3 8
Columns 31 through 32
13 13
moves =
Columns 1 through 30
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3 8
Columns 31 through 34
13 13 4 4
moves =
Columns 1 through 30
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3 8
Columns 31 through 35
13 13 4 4 19
moves =
Columns 1 through 30
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3 8
Columns 31 through 37
13 13 4 4 19 5 5
moves =
Columns 1 through 30
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3 8
Columns 31 through 39
13 13 4 4 19 5 5 20 20
moves =
Columns 1 through 30
1 1 3 3 4 4 5 5 6 6 6 8 10 12 13 13 14 15 15 18 19 19 22 25 25 2 7 3 3 8
Columns 31 through 41
13 13 4 4 19 5 5 20 20 25 25
|
Remove any row in which a NaN appears
6827 Solvers
1600 Solvers
651 Solvers
Number of 1s in a binary string
2827 Solvers
There are 10 types of people in the world
311 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!