diff --git a/31 Depth Charge/javascript/depthcharge.html b/31 Depth Charge/javascript/depthcharge.html
new file mode 100644
index 00000000..7a1e3add
--- /dev/null
+++ b/31 Depth Charge/javascript/depthcharge.html
@@ -0,0 +1,9 @@
+
+
+DEPTH CHARGE
+
+
+
+
+
+
diff --git a/31 Depth Charge/javascript/depthcharge.js b/31 Depth Charge/javascript/depthcharge.js
new file mode 100644
index 00000000..6b0a7813
--- /dev/null
+++ b/31 Depth Charge/javascript/depthcharge.js
@@ -0,0 +1,112 @@
+// DEPTH CHARGE
+//
+// 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(30) + "DEPTH CHARGE\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ print("DIMENSION OF THE SEARCH AREA");
+ g = Math.floor(await input());
+ n = Math.floor(Math.log(g) / Math.log(2)) + 1;
+ print("YOU ARE THE CAPTAIN OF THE DESTROYER USS COMPUTER\n");
+ print("AN ENEMY SUB HAS BEEN CAUSING YOU TROUBLE. YOUR\n");
+ print("MISSION IS TO DESTROY IT. YOU HAVE " + n + " SHOTS.\n");
+ print("SPECIFY DEPTH CHARGE EXPLOSION POINT WITH A\n");
+ print("TRIO OF NUMBERS -- THE FIRST TWO ARE THE\n");
+ print("SURFACE COORDINATES; THE THIRD IS THE DEPTH.\n");
+ do {
+ print("\n");
+ print("GOOD LUCK !\n");
+ print("\n");
+ a = Math.floor(Math.random() * g);
+ b = Math.floor(Math.random() * g);
+ c = Math.floor(Math.random() * g);
+ for (d = 1; d <= n; d++) {
+ print("\n");
+ print("TRIAL #" + d + " ");
+ str = await input();
+ x = parseInt(str);
+ y = parseInt(str.substr(str.indexOf(",") + 1));
+ z = parseInt(str.substr(str.lastIndexOf(",") + 1));
+ if (Math.abs(x - a) + Math.abs(y - b) + Math.abs(z - c) == 0)
+ break;
+ if (y > b)
+ print("NORTH");
+ if (y < b)
+ print("SOUTH");
+ if (x > a)
+ print("EAST");
+ if (x < a)
+ print("WEST");
+ if (y != b || x != a)
+ print(" AND");
+ if (z > c)
+ print(" TOO LOW.\n");
+ if (z < c)
+ print(" TOO HIGH.\n");
+ if (z == c)
+ print(" DEPTH OK.\n");
+ print("\n");
+ }
+ if (d <= n) {
+ print("\n");
+ print("B O O M ! ! YOU FOUND IT IN " + d + " TRIES!\n");
+ } else {
+ print("\n");
+ print("YOU HAVE BEEN TORPEDOED! ABANDON SHIP!\n");
+ print("THE SUBMARINE WAS AT " + a + "," + b + "," + c + "\n");
+ }
+ print("\n");
+ print("\n");
+ print("ANOTHER GAME (Y OR N)");
+ str = await input();
+ } while (str.substr(0, 1) == "Y") ;
+ print("OK. HOPE YOU ENJOYED YOURSELF.\n");
+}
+
+main();
diff --git a/32 Diamond/javascript/diamond.html b/32 Diamond/javascript/diamond.html
new file mode 100644
index 00000000..9756b2ab
--- /dev/null
+++ b/32 Diamond/javascript/diamond.html
@@ -0,0 +1,9 @@
+
+
+DIAMOND
+
+
+
+
+
+
diff --git a/32 Diamond/javascript/diamond.js b/32 Diamond/javascript/diamond.js
new file mode 100644
index 00000000..bb6f0fe9
--- /dev/null
+++ b/32 Diamond/javascript/diamond.js
@@ -0,0 +1,94 @@
+// DIAMOND
+//
+// 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) + "DIAMOND\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ print("FOR A PRETTY DIAMOND PATTERN,\n");
+ print("TYPE IN AN ODD NUMBER BETWEEN 5 AND 21");
+ r = parseInt(await input());
+ q = Math.floor(60 / r);
+ as = "CC"
+ x = 1;
+ y = r;
+ z = 2;
+ for (l = 1; l <= q; l++) {
+ for (n = x; z < 0 ? n >= y : n <= y; n += z) {
+ str = "";
+ while (str.length < (r - n) / 2)
+ str += " ";
+ for (m = 1; m <= q; m++) {
+ c = 1;
+ for (a = 1; a <= n; a++) {
+ if (c > as.length)
+ str += "!";
+ else
+ str += as[c++ - 1];
+ }
+ if (m == q)
+ break;
+ while (str.length < r * m + (r - n) / 2)
+ str += " ";
+ }
+ print(str + "\n");
+ }
+ if (x != 1) {
+ x = 1;
+ y = r;
+ z = 2;
+ } else {
+ x = r - 2;
+ y = 1;
+ z = -2;
+ l--;
+ }
+ }
+}
+
+main();
diff --git a/33 Dice/javascript/dice.html b/33 Dice/javascript/dice.html
new file mode 100644
index 00000000..420dbc5d
--- /dev/null
+++ b/33 Dice/javascript/dice.html
@@ -0,0 +1,9 @@
+
+
+DICE
+
+
+
+
+
+
diff --git a/33 Dice/javascript/dice.js b/33 Dice/javascript/dice.js
new file mode 100644
index 00000000..e33e538a
--- /dev/null
+++ b/33 Dice/javascript/dice.js
@@ -0,0 +1,84 @@
+// 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(34) + "DICE\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ f = [];
+ // Danny Freidus
+ print("THIS PROGRAM SIMULATES THE ROLLING OF A\n");
+ print("PAIR OF DICE.\n");
+ print("YOU ENTER THE NUMBER OF TIMES YOU WANT THE COMPUTER TO\n");
+ print("'ROLL' THE DICE. WATCH OUT, VERY LARGE NUMBERS TAKE\n");
+ print("A LONG TIME. IN PARTICULAR, NUMBERS OVER 5000.\n");
+ do {
+ for (q = 1; q <= 12; q++)
+ f[q] = 0;
+ print("\n");
+ print("HOW MANY ROLLS");
+ x = parseInt(await input());
+ for (s = 1; s <= x; s++) {
+ a = Math.floor(Math.random() * 6 + 1);
+ b = Math.floor(Math.random() * 6 + 1);
+ r = a + b;
+ f[r]++;
+ }
+ print("\n");
+ print("TOTAL SPOTS\tNUMBER OF TIMES\n");
+ for (v = 2; v <= 12; v++) {
+ print("\t" + v + "\t" + f[v] + "\n");
+ }
+ print("\n");
+ print("\n");
+ print("TRY AGAIN");
+ str = await input();
+ } while (str.substr(0, 1) == "Y") ;
+}
+
+main();