diff --git a/51 Hurkle/javascript/hurkle.html b/51 Hurkle/javascript/hurkle.html
new file mode 100644
index 00000000..8d2a5022
--- /dev/null
+++ b/51 Hurkle/javascript/hurkle.html
@@ -0,0 +1,9 @@
+
+
+HURKLE
+
+
+
+
+
+
diff --git a/51 Hurkle/javascript/hurkle.js b/51 Hurkle/javascript/hurkle.js
new file mode 100644
index 00000000..1e3301e5
--- /dev/null
+++ b/51 Hurkle/javascript/hurkle.js
@@ -0,0 +1,102 @@
+// BATNUM
+//
+// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
+//
+
+function print(str)
+{
+ document.getElementById("output").appendChild(document.createTextNode(str));
+}
+
+function input()
+{
+ var input_element;
+ var input_str;
+
+ return new Promise(function (resolve) {
+ input_element = document.createElement("INPUT");
+
+ print("? ");
+ input_element.setAttribute("type", "text");
+ input_element.setAttribute("length", "50");
+ document.getElementById("output").appendChild(input_element);
+ input_element.focus();
+ input_str = undefined;
+ input_element.addEventListener("keydown", function (event) {
+ if (event.keyCode == 13) {
+ input_str = input_element.value;
+ document.getElementById("output").removeChild(input_element);
+ print(input_str);
+ print("\n");
+ resolve(input_str);
+ }
+ });
+ });
+}
+
+function tab(space)
+{
+ var str = "";
+ while (space-- > 0)
+ str += " ";
+ return str;
+}
+
+// Main program
+async function main()
+{
+ print(tab(33) + "HURKLE\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ n = 5;
+ g = 10;
+ print("\n");
+ print("A HURKLE IS HIDING ON A " + g + " BY " + g + " GRID. HOMEBASE\n");
+ print("ON THE GRID IS POINT 0,0 IN THE SOUTHWEST CORNER,\n");
+ print("AND ANY POINT ON THE GRID IS DESIGNATED BY A\n");
+ print("PAIR OF WHOLE NUMBERS SEPERATED BY A COMMA. THE FIRST\n");
+ print("NUMBER IS THE HORIZONTAL POSITION AND THE SECOND NUMBER\n");
+ print("IS THE VERTICAL POSITION. YOU MUST TRY TO\n");
+ print("GUESS THE HURKLE'S GRIDPOINT. YOU GET " + n + " TRIES.\n");
+ print("AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE\n");
+ print("DIRECTION TO GO TO LOOK FOR THE HURKLE.\n");
+ print("\n");
+ while (1) {
+ a = Math.floor(g * Math.random());
+ b = Math.floor(g * Math.random());
+ for (k = 1; k <= n; k++) {
+ print("GUESS #" + k + " ");
+ str = await input();
+ x = parseInt(str);
+ y = parseInt(str.substr(str.indexOf(",") + 1));
+ if (x == a && y == b) {
+ print("\n");
+ print("YOU FOUND HIM IN " + k + " GUESSES!\n");
+ break;
+ }
+ print("GO ");
+ if (y < b) {
+ print("NORTH");
+ } else if (y > b) {
+ print("SOUTH");
+ }
+ if (x < a) {
+ print("EAST\n");
+ } else {
+ print("WEST\n");
+ }
+ }
+ if (k > n) {
+ print("\n");
+ print("SORRY, THAT'S " + n + " GUESSES.\n");
+ print("THE HURKLE IS AT " + a + "," + b + "\n");
+ }
+ print("\n");
+ print("LET'S PLAY AGAIN, HURKLE IS HIDING.\n");
+ print("\n");
+ }
+}
+
+main();
diff --git a/52 Kinema/javascript/kinema.html b/52 Kinema/javascript/kinema.html
new file mode 100644
index 00000000..0e41284e
--- /dev/null
+++ b/52 Kinema/javascript/kinema.html
@@ -0,0 +1,9 @@
+
+
+KINEMA
+
+
+
+
+
+
diff --git a/52 Kinema/javascript/kinema.js b/52 Kinema/javascript/kinema.js
new file mode 100644
index 00000000..abd2bb1c
--- /dev/null
+++ b/52 Kinema/javascript/kinema.js
@@ -0,0 +1,95 @@
+// KINEMA
+//
+// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
+//
+
+function print(str)
+{
+ document.getElementById("output").appendChild(document.createTextNode(str));
+}
+
+function input()
+{
+ var input_element;
+ var input_str;
+
+ return new Promise(function (resolve) {
+ input_element = document.createElement("INPUT");
+
+ print("? ");
+ input_element.setAttribute("type", "text");
+ input_element.setAttribute("length", "50");
+ document.getElementById("output").appendChild(input_element);
+ input_element.focus();
+ input_str = undefined;
+ input_element.addEventListener("keydown", function (event) {
+ if (event.keyCode == 13) {
+ input_str = input_element.value;
+ document.getElementById("output").removeChild(input_element);
+ print(input_str);
+ print("\n");
+ resolve(input_str);
+ }
+ });
+ });
+}
+
+function tab(space)
+{
+ var str = "";
+ while (space-- > 0)
+ str += " ";
+ return str;
+}
+
+var q;
+
+function evaluate_answer(str, a)
+{
+ g = parseFloat(str);
+ if (Math.abs((g - a) / a) < 0.15) {
+ print("CLOSE ENOUGH.\n");
+ q++;
+ } else {
+ print("NOT EVEN CLOSE....\n");
+ }
+ print("CORRECT ANSWER IS " + a + "\n\n");
+}
+
+// Main program
+async function main()
+{
+ print(tab(33) + "KINEMA\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ while (1) {
+ print("\n");
+ print("\n");
+ q = 0;
+ v = 5 + Math.floor(35 * Math.random());
+ print("A BALL IS THROWN UPWARDS AT " + v + " METERS PER SECOND.\n");
+ print("\n");
+ a = 0.5 * Math.pow(v, 2);
+ print("HOW HIGH WILL IT GO (IN METERS)");
+ str = await input();
+ evaluate_answer(str, a);
+ a = v / 5;
+ print("HOW LONG UNTIL IT RETURNS (IN SECONDS)");
+ str = await input();
+ evaluate_answer(str, a);
+ t = 1 + Math.floor(2 * v * Math.random()) / 10;
+ a = v - 10 * t;
+ print("WHAT WILL ITS VELOCITY BE AFTER " + t + " SECONDS");
+ str = await input();
+ evaluate_answer(str, a);
+ print("\n");
+ print(q + " RIGHT OUT OF 3.");
+ if (q < 2)
+ continue;
+ print(" NOT BAD.\n");
+ }
+}
+
+main();
diff --git a/54 Letter/javascript/letter.html b/54 Letter/javascript/letter.html
new file mode 100644
index 00000000..744a5499
--- /dev/null
+++ b/54 Letter/javascript/letter.html
@@ -0,0 +1,9 @@
+
+
+LETTER
+
+
+
+
+
+
diff --git a/54 Letter/javascript/letter.js b/54 Letter/javascript/letter.js
new file mode 100644
index 00000000..7aef3de9
--- /dev/null
+++ b/54 Letter/javascript/letter.js
@@ -0,0 +1,91 @@
+// LETTER
+//
+// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
+//
+
+function print(str)
+{
+ document.getElementById("output").appendChild(document.createTextNode(str));
+}
+
+function input()
+{
+ var input_element;
+ var input_str;
+
+ return new Promise(function (resolve) {
+ input_element = document.createElement("INPUT");
+
+ print("? ");
+ input_element.setAttribute("type", "text");
+ input_element.setAttribute("length", "50");
+ document.getElementById("output").appendChild(input_element);
+ input_element.focus();
+ input_str = undefined;
+ input_element.addEventListener("keydown", function (event) {
+ if (event.keyCode == 13) {
+ input_str = input_element.value;
+ document.getElementById("output").removeChild(input_element);
+ print(input_str);
+ print("\n");
+ resolve(input_str);
+ }
+ });
+ });
+}
+
+function tab(space)
+{
+ var str = "";
+ while (space-- > 0)
+ str += " ";
+ return str;
+}
+
+// Main program
+async function main()
+{
+ print(tab(33) + "LETTER\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ print("LETTER GUESSING GAME\n");
+ print("\n");
+ print("I'LL THINK OF A LETTER OF THE ALPHABET, A TO Z.\n");
+ print("TRY TO GUESS MY LETTER AND I'LL GIVE YOU CLUES\n");
+ print("AS TO HOW CLOSE YOU'RE GETTING TO MY LETTER.\n");
+ while (1) {
+ l = 65 + Math.floor(26 * Math.random());
+ g = 0;
+ print("\n");
+ print("O.K., I HAVE A LETTER. START GUESSING.\n");
+ while (1) {
+
+ print("\n");
+ print("WHAT IS YOUR GUESS");
+ g++;
+ str = await input();
+ a = str.charCodeAt(0);
+ print("\n");
+ if (a == l)
+ break;
+ if (a < l) {
+ print("TOO LOW. TRY A HIGHER LETTER.\n");
+ } else {
+ print("TOO HIGH. TRY A LOWER LETTER.\n");
+ }
+ }
+ print("\n");
+ print("YOU GOT IT IN " + g + " GUESSES!!\n");
+ if (g > 5) {
+ print("BUT IT SHOULDN'T TAKE MORE THAN 5 GUESSES!\n");
+ } else {
+ print("GOOD JOB !!!!!\n");
+ }
+ print("\n");
+ print("LET'S PLAY AGAIN.....");
+ }
+}
+
+main();
diff --git a/57 Literature Quiz/javascript/litquiz.html b/57 Literature Quiz/javascript/litquiz.html
new file mode 100644
index 00000000..e4aae4c3
--- /dev/null
+++ b/57 Literature Quiz/javascript/litquiz.html
@@ -0,0 +1,9 @@
+
+
+LITERATURE QUIZ
+
+
+
+
+
+
diff --git a/57 Literature Quiz/javascript/litquiz.js b/57 Literature Quiz/javascript/litquiz.js
new file mode 100644
index 00000000..f4d6a4f6
--- /dev/null
+++ b/57 Literature Quiz/javascript/litquiz.js
@@ -0,0 +1,119 @@
+// LITQUIZ
+//
+// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
+//
+
+function print(str)
+{
+ document.getElementById("output").appendChild(document.createTextNode(str));
+}
+
+function input()
+{
+ var input_element;
+ var input_str;
+
+ return new Promise(function (resolve) {
+ input_element = document.createElement("INPUT");
+
+ print("? ");
+ input_element.setAttribute("type", "text");
+ input_element.setAttribute("length", "50");
+ document.getElementById("output").appendChild(input_element);
+ input_element.focus();
+ input_str = undefined;
+ input_element.addEventListener("keydown", function (event) {
+ if (event.keyCode == 13) {
+ input_str = input_element.value;
+ document.getElementById("output").removeChild(input_element);
+ print(input_str);
+ print("\n");
+ resolve(input_str);
+ }
+ });
+ });
+}
+
+function tab(space)
+{
+ var str = "";
+ while (space-- > 0)
+ str += " ";
+ return str;
+}
+
+// Main program
+async function main()
+{
+ print(tab(25) + "LITERATURE QUIZ\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ r = 0;
+ print("TEST YOUR KNOWLEDGE OF CHILDREN'S LITERATURE.\n");
+ print("\n");
+ print("THIS IS A MULTIPLE-CHOICE QUIZ.\n");
+ print("TYPE A 1, 2, 3, OR 4 AFTER THE QUESTION MARK.\n");
+ print("\n");
+ print("GOOD LUCK!\n");
+ print("\n");
+ print("\n");
+ print("IN PINOCCHIO, WHAT WAS THE NAME OF THE CAT\n");
+ print("1)TIGGER, 2)CICERO, 3)FIGARO, 4)GUIPETTO\n");
+ a = parseInt(await input());
+ if (a == 3) {
+ print("VERY GOOD! HERE'S ANOTHER.\n");
+ r++;
+ } else {
+ print("SORRY...FIGARO WAS HIS NAME.\n");
+ }
+ print("\n");
+ print("\n");
+ print("FROM WHOSE GARDEN DID BUGS BUNNY STEAL THE CARROTS?\n");
+ print("1)MR. NIXON'S, 2)ELMER FUDD'S, 3)CLEM JUDD'S, 4)STROMBOLI'S\n");
+ a = parseInt(await input());
+ if (a == 2) {
+ print("PRETTY GOOD!\n");
+ r++;
+ } else {
+ print("TOO BAD...IT WAS ELMER FUDD'S GARDEN.\n");
+ }
+ print("\n");
+ print("\n");
+ print("IN THE WIZARD OF OS, DOROTHY'S DOG WAS NAMED\n");
+ print("1)CICERO, 2)TRIXIA, 3)KING, 4)TOTO\n");
+ a = parseInt(await input());
+ if (a == 4) {
+ print("YEA! YOU'RE A REAL LITERATURE GIANT.\n");
+ r++;
+ } else {
+ print("BACK TO THE BOOKS,...TOTO WAS HIS NAME.\n");
+ }
+ print("\n");
+ print("\n");
+ print("WHO WAS THE FAIR MAIDEN WHO ATE THE POISON APPLE\n");
+ print("1)SLEEPING BEAUTY, 2)CINDERELLA, 3)SNOW WHITE, 4)WENDY\n");
+ a = parseInt(await input());
+ if (a == 3) {
+ print("GOOD MEMORY!\n");
+ r++;
+ } else {
+ print("OH, COME ON NOW...IT WAS SNOW WHITE.\n");
+ }
+ print("\n");
+ print("\n");
+ if (r == 4) {
+ print("WOW! THAT'S SUPER! YOU REALLY KNOW YOUR NURSERY\n");
+ print("YOUR NEXT QUIZ WILL BE ON 2ND CENTURY CHINESE\n");
+ print("LITERATURE (HA, HA, HA)\n");
+ } else if (r < 2) {
+ print("UGH. THAT WAS DEFINITELY NOT TOO SWIFT. BACK TO\n");
+ print("NURSERY SCHOOL FOR YOU, MY FRIEND.\n");
+ } else {
+ print("NOT BAD, BUT YOU MIGHT SPEND A LITTLE MORE TIME\n");
+ print("READING THE NURSERY GREATS.\n");
+ }
+}
+
+main();
diff --git a/58 Love/javascript/love.html b/58 Love/javascript/love.html
new file mode 100644
index 00000000..ede593e8
--- /dev/null
+++ b/58 Love/javascript/love.html
@@ -0,0 +1,9 @@
+
+
+LOVE
+
+
+
+
+
+
diff --git a/58 Love/javascript/love.js b/58 Love/javascript/love.js
new file mode 100644
index 00000000..d67c6acb
--- /dev/null
+++ b/58 Love/javascript/love.js
@@ -0,0 +1,105 @@
+// LOVE
+//
+// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
+//
+
+function print(str)
+{
+ document.getElementById("output").appendChild(document.createTextNode(str));
+}
+
+function input()
+{
+ var input_element;
+ var input_str;
+
+ return new Promise(function (resolve) {
+ input_element = document.createElement("INPUT");
+
+ print("? ");
+ input_element.setAttribute("type", "text");
+ input_element.setAttribute("length", "50");
+ document.getElementById("output").appendChild(input_element);
+ input_element.focus();
+ input_str = undefined;
+ input_element.addEventListener("keydown", function (event) {
+ if (event.keyCode == 13) {
+ input_str = input_element.value;
+ document.getElementById("output").removeChild(input_element);
+ print(input_str);
+ print("\n");
+ resolve(input_str);
+ }
+ });
+ });
+}
+
+function tab(space)
+{
+ var str = "";
+ while (space-- > 0)
+ str += " ";
+ return str;
+}
+
+var data = [60,1,12,26,9,12,3,8,24,17,8,4,6,23,21,6,4,6,22,12,5,6,5,
+ 4,6,21,11,8,6,4,4,6,21,10,10,5,4,4,6,21,9,11,5,4,
+ 4,6,21,8,11,6,4,4,6,21,7,11,7,4,4,6,21,6,11,8,4,
+ 4,6,19,1,1,5,11,9,4,4,6,19,1,1,5,10,10,4,4,6,18,2,1,6,8,11,4,
+ 4,6,17,3,1,7,5,13,4,4,6,15,5,2,23,5,1,29,5,17,8,
+ 1,29,9,9,12,1,13,5,40,1,1,13,5,40,1,4,6,13,3,10,6,12,5,1,
+ 5,6,11,3,11,6,14,3,1,5,6,11,3,11,6,15,2,1,
+ 6,6,9,3,12,6,16,1,1,6,6,9,3,12,6,7,1,10,
+ 7,6,7,3,13,6,6,2,10,7,6,7,3,13,14,10,8,6,5,3,14,6,6,2,10,
+ 8,6,5,3,14,6,7,1,10,9,6,3,3,15,6,16,1,1,
+ 9,6,3,3,15,6,15,2,1,10,6,1,3,16,6,14,3,1,10,10,16,6,12,5,1,
+ 11,8,13,27,1,11,8,13,27,1,60];
+
+// Main program
+async function main()
+{
+ print(tab(33) + "LOVE\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ print("A TRIBUTE TO THE GREAT AMERICAN ARTIST, ROBERT INDIANA.\n");
+ print("HIS GREATEST WORK WILL BE REPRODUCED WITH A MESSAGE OF\n");
+ print("YOUR CHOICE UP TO 60 CHARACTERS. IF YOU CAN'T THINK OF\n");
+ print("A MESSAGE, SIMPLE TYPE THE WORD 'LOVE'\n");
+ print("\n");
+ print("YOUR MESSAGE, PLEASE");
+ str = await input();
+ l = str.length;
+ ts = [];
+ for (i = 1; i <= 10; i++)
+ print("\n");
+ ts = "";
+ do {
+ ts += str;
+ } while (ts.length < 60) ;
+ pos = 0;
+ c = 0;
+ while (++c < 37) {
+ a1 = 1;
+ p = 1;
+ print("\n");
+ do {
+ a = data[pos++];
+ a1 += a;
+ if (p != 1) {
+ for (i = 1; i <= a; i++)
+ print(" ");
+ p = 1;
+ } else {
+ for (i = a1 - a; i <= a1 - 1; i++)
+ print(ts[i]);
+ p = 0;
+ }
+ } while (a1 <= 60) ;
+ }
+ for (i = 1; i <= 10; i++)
+ print("\n");
+}
+
+main();
diff --git a/61 Math Dice/javascript/mathdice.html b/61 Math Dice/javascript/mathdice.html
new file mode 100644
index 00000000..dfdf3f5f
--- /dev/null
+++ b/61 Math Dice/javascript/mathdice.html
@@ -0,0 +1,9 @@
+
+
+MATH DICE
+
+
+
+
+
+
diff --git a/61 Math Dice/javascript/mathdice.js b/61 Math Dice/javascript/mathdice.js
new file mode 100644
index 00000000..f6ccda81
--- /dev/null
+++ b/61 Math Dice/javascript/mathdice.js
@@ -0,0 +1,113 @@
+// MATH DICE
+//
+// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
+//
+
+function print(str)
+{
+ document.getElementById("output").appendChild(document.createTextNode(str));
+}
+
+function input()
+{
+ var input_element;
+ var input_str;
+
+ return new Promise(function (resolve) {
+ input_element = document.createElement("INPUT");
+
+ print("? ");
+ input_element.setAttribute("type", "text");
+ input_element.setAttribute("length", "50");
+ document.getElementById("output").appendChild(input_element);
+ input_element.focus();
+ input_str = undefined;
+ input_element.addEventListener("keydown", function (event) {
+ if (event.keyCode == 13) {
+ input_str = input_element.value;
+ document.getElementById("output").removeChild(input_element);
+ print(input_str);
+ print("\n");
+ resolve(input_str);
+ }
+ });
+ });
+}
+
+function tab(space)
+{
+ var str = "";
+ while (space-- > 0)
+ str += " ";
+ return str;
+}
+
+// Main program
+async function main()
+{
+ print(tab(31) + "MATH DICE\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ print("THIS PROGRAM GENERATES SUCCESSIVE PICTURES OF TWO DICE.\n");
+ print("WHEN TWO DICE AND AN EQUAL SIGN FOLLOWED BY A QUESTION\n");
+ print("MARK HAVE BEEN PRINTED, TYPE YOUR ANSWER AND THE RETURN KEY.\n"),
+ print("TO CONCLUDE THE LESSON, TYPE ZERO AS YOUR ANSWER.\n");
+ print("\n");
+ print("\n");
+ n = 0;
+ while (1) {
+ n++;
+ d = Math.floor(6 * Math.random() + 1);
+ print(" ----- \n");
+ if (d == 1)
+ print("I I\n");
+ else if (d == 2 || d == 3)
+ print("I * I\n");
+ else
+ print("I * * I\n");
+ if (d == 2 || d == 4)
+ print("I I\n");
+ else if (d == 6)
+ print("I * * I\n");
+ else
+ print("I * I\n");
+ if (d == 1)
+ print("I I\n");
+ else if (d == 2 || d == 3)
+ print("I * I\n");
+ else
+ print("I * * I\n");
+ print(" ----- \n");
+ print("\n");
+ if (n != 2) {
+ print(" +\n");
+ print("\n");
+ a = d;
+ continue;
+ }
+ t = d + a;
+ print(" =");
+ t1 = parseInt(await input());
+ if (t1 == 0)
+ break;
+ if (t1 != t) {
+ print("NO, COUNT THE SPOTS AND GIVE ANOTHER ANSWER.\n");
+ print(" =");
+ t1 = parseInt(await input());
+ if (t1 != t) {
+ print("NO, THE ANSWER IS " + t + "\n");
+ }
+ }
+ if (t1 == t) {
+ print("RIGHT!\n");
+ }
+ print("\n");
+ print("THE DICE ROLL AGAIN...\n");
+ print("\n");
+ n = 0;
+ }
+}
+
+main();
diff --git a/61 Math Dice/mathdice.bas b/61 Math Dice/mathdice.bas
index d61b060d..a62a7d8c 100644
--- a/61 Math Dice/mathdice.bas
+++ b/61 Math Dice/mathdice.bas
@@ -1,7 +1,7 @@
10 PRINT TAB(31);"MATH DICE"
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
30 PRINT:PRINT:PRINT
-40 PRINT "THIS PROGRAM GENERATES SUCCESIVE PICTURES OF TWO DICE."
+40 PRINT "THIS PROGRAM GENERATES SUCCESSIVE PICTURES OF TWO DICE."
50 PRINT "WHEN TWO DICE AND AN EQUAL SIGN FOLLOWED BY A QUESTION"
60 PRINT "MARK HAVE BEEN PRINTED, TYPE YOUR ANSWER AND THE RETURN KEY."
70 PRINT "TO CONCLUDE THE LESSON, TYPE CONTROL-C AS YOUR ANSWER."