Skip to content

Commit a8003d6

Browse files
committed
Merge data and code parts into one
1 parent 7835151 commit a8003d6

File tree

161 files changed

+1093
-990
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+1093
-990
lines changed

Backtracking/Knight's tour problem/Knight's tour problem/data.js

Lines changed: 0 additions & 29 deletions
This file was deleted.

Backtracking/Knight's tour problem/Knight's tour problem/code.js renamed to Backtracking/Knight's tour problem/code.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
/*
2+
For N>3 the time taken by this algorithm is sufficiently high
3+
Also it is not possible to visualise for N>6 due to stack overflow
4+
caused by large number of recursive calls
5+
*/
6+
var N = 3;
7+
var board = new Array (N);
8+
for (var i = board.length - 1; i >= 0; i--) {
9+
board[i] = new Array (N);
10+
}
11+
12+
for (var i = board.length - 1; i >= 0; i--) {
13+
for (var j = board[i].length - 1; j >= 0; j--) {
14+
board[i][j] = -1;
15+
}
16+
}
17+
18+
/*
19+
Define the next move of the knight
20+
*/
21+
var X = [ 2, 1, -1, -2, -2, -1, 1, 2 ];
22+
var Y = [ 1, 2, 2, 1, -1, -2, -2, -1 ];
23+
24+
var pos = new Array (2);
25+
pos[0] = pos[1] = -1;
26+
27+
var boardTracer = new Array2DTracer ('Board').set (board);
28+
var posTracer = new Array1DTracer ('Knight Position').set (pos);
29+
var logTracer = new LogTracer ('Console');
30+
131
function knightTour(x, y, moveNum) {
232
if (moveNum === N*N) {
333
return true;

Backtracking/N Queens Problem/N Queens/data.js

Lines changed: 0 additions & 23 deletions
This file was deleted.

Backtracking/N Queens Problem/N Queens/code.js renamed to Backtracking/N Queens Problem/code.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
var N = 4; //just change the value of N and the visuals will reflect the configuration!
2+
var board = (function createArray (N) {
3+
var result = [];
4+
for (var i = 0; i < N; i++) {
5+
result [i] = Array.apply(null, Array(N)).map(Number.prototype.valueOf,0);
6+
}
7+
return result;
8+
}) (N);
9+
var queens = (function qSetup (N) {
10+
var result = [];
11+
for (var i = 0; i < N; i++) {
12+
result [i] = [-1,-1];
13+
}
14+
return result;
15+
}) (N);
16+
17+
var boardTracer = new Array2DTracer ('Board'),
18+
queenTracer = new Array2DTracer ('Queen Positions'),
19+
logger = new LogTracer ('Progress');
20+
21+
boardTracer.set (board);
22+
queenTracer.set (queens);
23+
logger.print ('N Queens: ' + N + 'X' + N + 'matrix, ' + N + ' queens');
24+
125
function validState (row, col, currentQueen) {
226
for (var q = 0; q < currentQueen; q++) {
327
var currentQ = queens [q];

Cryptography/Affine Cipher/Affine Cipher/data.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

Cryptography/Affine Cipher/Affine Cipher/code.js renamed to Cryptography/Affine Cipher/code.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
function randString(length) {
2+
var choices = 'abcdefghijklmnopqrstuvwxyz';
3+
var text = '';
4+
5+
for (var i = 0; i < length; i++) {
6+
text += choices[Integer.random(0, choices.length - 1)];
7+
}
8+
9+
return text;
10+
}
11+
12+
//var plainText = randString (5);
13+
var plainText = 'secret';
14+
var ptTracer = new Array1DTracer('Encryption');
15+
var ctTracer = new Array1DTracer('Decryption');
16+
var logger = new LogTracer();
17+
18+
ptTracer.set(plainText);
19+
120
/*
221
code assumes that plainText contains ONLY LOWER CASE ALPHABETS
322
*/

Cryptography/Caesar Cipher/Caesar Cipher/data.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

Cryptography/Caesar Cipher/Caesar Cipher/code.js renamed to Cryptography/Caesar Cipher/code.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
var string = 'hello! how are you doing?';
2+
var rotation = 5;
3+
var alphabet = 'abcdefghijklmnopqrstuvwxyz';
4+
// create a map of char -> position to improve run time
5+
// otherwise we would have to search the alphabet each
6+
// time to find the character position
7+
var alphabetMap = alphabet.split('').reduce(function(map, curr, idx) {
8+
map[curr] = idx;
9+
return map;
10+
}, {});
11+
12+
var encryptTracer = new Array1DTracer('Encryption');
13+
var decryptTracer = new Array1DTracer('Decryption');
14+
var logger = new LogTracer();
15+
16+
encryptTracer.set(string);
17+
118
function getPosUp(pos) {
219
return (pos === alphabet.length - 1) ? 0 : pos + 1;
320
}

Dynamic Programming/Catalan Number/Catalan Number/data.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

Dynamic Programming/Catalan Number/Catalan Number/code.js renamed to Dynamic Programming/Catalan Number/code.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
var N = 10;
2+
var A = new Array ( N+1 );
3+
for (var i = N; i >= 0; i--) {
4+
A[i] = 0;
5+
}
6+
7+
var tracer = new Array1DTracer( ' Catalan Numbers ').set( A );
8+
var logger = new LogTracer();
9+
110
A[0] = 1;
211
tracer.notify ( 0, A[0] ).wait();
312
tracer.denotify ( 0 );

0 commit comments

Comments
 (0)