Skip to content

Commit f015347

Browse files
committed
backtracking algorithms
1 parent 6be1c4c commit f015347

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

src/ts/algorithms/backtracking/rat-in-maze.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export function ratInAMaze(maze: Array<Array<number>>) {
88
}
99
}
1010

11-
if (findPath(maze, 0, 0, solution) === false) {
11+
if (findPath(maze, 0, 0, solution) === true) {
1212
return solution;
1313
} else {
1414
return 'NO PATH FOUND';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import 'mocha';
2+
import { expect } from 'chai';
3+
import { ratInAMaze } from '../../../../src/ts/index';
4+
5+
describe('Rat in a maze', () => {
6+
it('rat in a maze solver', () => {
7+
const maze = [
8+
[1, 0, 0, 0],
9+
[1, 1, 1, 1],
10+
[0, 0, 1, 0],
11+
[0, 1, 1, 1]
12+
];
13+
const solution = [
14+
[1, 0, 0, 0],
15+
[1, 1, 1, 0],
16+
[0, 0, 1, 0],
17+
[0, 0, 1, 1]
18+
];
19+
expect(ratInAMaze(maze)).to.deep.equal(solution);
20+
});
21+
});

test/ts/algorithms/backtracking/sudoku-solver.spec.ts

+26
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,30 @@ describe('Sudoku Solver', () => {
2828
];
2929
expect(sudokuSolver(grid)).to.deep.equal(solution);
3030
});
31+
32+
it('sudoku solver 2', () => {
33+
const grid = [
34+
[5, 3, 0, 0, 7, 0, 0, 0, 0],
35+
[6, 0, 0, 1, 9, 5, 0, 0, 0],
36+
[0, 9, 8, 0, 0, 0, 0, 6, 0],
37+
[8, 0, 0, 0, 6, 0, 0, 0, 3],
38+
[4, 0, 0, 8, 0, 3, 0, 0, 1],
39+
[7, 0, 0, 0, 2, 0, 0, 0, 6],
40+
[0, 6, 0, 0, 0, 0, 2, 8, 0],
41+
[0, 0, 0, 4, 1, 9, 0, 0, 5],
42+
[0, 0, 0, 0, 8, 0, 0, 7, 9]
43+
];
44+
const solution = [
45+
[5, 3, 4, 6, 7, 8, 9, 1, 2],
46+
[6, 7, 2, 1, 9, 5, 3, 4, 8],
47+
[1, 9, 8, 3, 4, 2, 5, 6, 7],
48+
[8, 5, 9, 7, 6, 1, 4, 2, 3],
49+
[4, 2, 6, 8, 5, 3, 7, 9, 1],
50+
[7, 1, 3, 9, 2, 4, 8, 5, 6],
51+
[9, 6, 1, 5, 3, 7, 2, 8, 4],
52+
[2, 8, 7, 4, 1, 9, 6, 3, 5],
53+
[3, 4, 5, 2, 8, 6, 1, 7, 9]
54+
];
55+
expect(sudokuSolver(grid)).to.deep.equal(solution);
56+
});
3157
});

0 commit comments

Comments
 (0)