diff --git a/41 Guess/javascript/guess.html b/41 Guess/javascript/guess.html
new file mode 100644
index 00000000..22a1bee0
--- /dev/null
+++ b/41 Guess/javascript/guess.html
@@ -0,0 +1,9 @@
+
+
+GUESS
+
+
+
+
+
+
diff --git a/41 Guess/javascript/guess.js b/41 Guess/javascript/guess.js
new file mode 100644
index 00000000..e313169c
--- /dev/null
+++ b/41 Guess/javascript/guess.js
@@ -0,0 +1,104 @@
+// GUESS
+//
+// 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;
+}
+
+function make_space()
+{
+ for (h = 1; h <= 5; h++)
+ print("\n");
+}
+
+// Main control section
+async function main()
+{
+ while (1) {
+ print(tab(33) + "GUESS\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ print("THIS IS A NUMBER GUESSING GAME. I'LL THINK\n");
+ print("OF A NUMBER BETWEEN 1 AND ANY LIMIT YOU WANT.\n");
+ print("THEN YOU HAVE TO GUESS WHAT IT IS.\n");
+ print("\n");
+
+ print("WHAT LIMIT DO YOU WANT");
+ l = parseInt(await input());
+ print("\n");
+ l1 = Math.floor(Math.log(l) / Math.log(2)) + 1;
+ while (1) {
+ print("I'M THINKING OF A NUMBER BETWEEN 1 AND " + l + "\n");
+ g = 1;
+ print("NOW YOU TRY TO GUESS WHAT IT IS.\n");
+ m = Math.floor(l * Math.random() + 1);
+ while (1) {
+ n = parseInt(await input());
+ if (n <= 0) {
+ make_space();
+ break;
+ }
+ if (n == m) {
+ print("THAT'S IT! YOU GOT IT IN " + g + " TRIES.\n");
+ if (g == l1) {
+ print("GOOD.\n");
+ } else if (g < l1) {
+ print("VERY GOOD.\n");
+ } else {
+ print("YOU SHOULD HAVE BEEN TO GET IT IN ONLY " + l1 + "\n");
+ }
+ make_space();
+ break;
+ }
+ g++;
+ if (n > m)
+ print("TOO HIGH. TRY A SMALLER ANSWER.\n");
+ else
+ print("TOO LOW. TRY A BIGGER ANSWER.\n");
+ }
+ if (n <= 0)
+ break;
+ }
+ }
+}
+
+main();
diff --git a/42 Gunner/javascript/gunner.html b/42 Gunner/javascript/gunner.html
new file mode 100644
index 00000000..431c9064
--- /dev/null
+++ b/42 Gunner/javascript/gunner.html
@@ -0,0 +1,9 @@
+
+
+GUNNER
+
+
+
+
+
+
diff --git a/42 Gunner/javascript/gunner.js b/42 Gunner/javascript/gunner.js
new file mode 100644
index 00000000..64a427a1
--- /dev/null
+++ b/42 Gunner/javascript/gunner.js
@@ -0,0 +1,139 @@
+// GUNNER
+//
+// 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;
+}
+
+print(tab(30) + "GUNNER\n");
+print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+print("\n");
+print("\n");
+print("\n");
+print("YOU ARE THE OFFICER-IN-CHARGE, GIVING ORDERS TO A GUN\n");
+print("CREW, TELLING THEM THE DEGREES OF ELEVATION YOU ESTIMATE\n");
+print("WILL PLACE A PROJECTILE ON TARGET. A HIT WITHIN 100 YARDS\n");
+print("OF THE TARGET WILL DESTROY IT.\n");
+print("\n");
+
+// Main control section
+async function main()
+{
+ while (1) {
+ r = Math.floor(40000 * Math.random() + 20000);
+ print("MAXIMUM RANGE OF YOUR GUN IS " + r + " YARDS.\n");
+ z = 0;
+ print("\n");
+ s1 = 0;
+ while (1) {
+ t = Math.floor(r * (0.1 + 0.8 * Math.random()));
+ s = 0;
+ print("DISTANCE TO THE TARGET IS " + t + " YARDS.\n");
+ print("\n");
+
+ while (1) {
+ print("\n");
+ print("ELEVATION");
+ b = parseFloat(await input());
+ if (b > 89) {
+ print("MAXIMUM ELEVATION IS 89 DEGREES.\n");
+ continue;
+ }
+ if (b < 1) {
+ print("MINIMUM ELEVATION IS ONE DEGREE.\n");
+ continue;
+ }
+ if (++s >= 6) {
+ print("\n");
+ print("BOOM !!!! YOU HAVE JUST BEEN DESTROYED BY THE ENEMY.\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ e = 0;
+ break;
+ }
+ b2 = 2 * b / 57.3;
+ i = r * Math.sin(b2);
+ x = t - i;
+ e = Math.floor(x);
+ if (true) { //Math.abs(e) < 100) {
+ e = 1;
+ break;
+ }
+ if (e > 100) {
+ print("SHORT OF TARGET BY " + Math.abs(e) + " YARDS.\n");
+ } else {
+ print("OVER TARGET BY " + Math.abs(e) + " YARDS.\n");
+ }
+ }
+ if (e == 1) {
+ print("*** TARGET DESTROYED *** " + s + " ROUNDS OF AMMUNITION EXPENDED.\n");
+ s1 += s;
+ if (z == 4) {
+ print("\n");
+ print("\n");
+ print("TOTAL ROUND EXPENDED WERE: " + s1 + "\n");
+ break;
+ } else {
+ z++;
+ print("\n");
+ print("THE FORWARD OBSERVER HAS SIGHTED MORE ENEMY ACTIVITY...\n");
+ }
+ } else {
+ s1 = 19;
+ break;
+ }
+ }
+ if (s1 > 18) {
+ print("BETTER GO BACK TO FORT SILL FOR REFRESHER TRAINING!\n");
+ } else {
+ print("NICE SHOOTING !!");
+ }
+ print("\n");
+ print("TRY AGAIN (Y OR N)");
+ str = await input();
+ if (str.substr(0, 1) != "Y")
+ break;
+ }
+ print("\n");
+ print("OK. RETURN TO BASE CAMP.\n");
+}
+
+main();
diff --git a/43 Hammurabi/javascript/hammurabi.html b/43 Hammurabi/javascript/hammurabi.html
new file mode 100644
index 00000000..2facdcb4
--- /dev/null
+++ b/43 Hammurabi/javascript/hammurabi.html
@@ -0,0 +1,9 @@
+
+
+HAMMURABI
+
+
+
+
+
+
diff --git a/43 Hammurabi/javascript/hammurabi.js b/43 Hammurabi/javascript/hammurabi.js
new file mode 100644
index 00000000..285753c7
--- /dev/null
+++ b/43 Hammurabi/javascript/hammurabi.js
@@ -0,0 +1,253 @@
+// HAMMURABI
+//
+// 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 a;
+var s;
+
+function exceeded_grain()
+{
+ print("HAMURABI: THINK AGAIN. YOU HAVE ONLY\n");
+ print(s + " BUSHELS OF GRAIN. NOW THEN,\n");
+
+}
+
+function exceeded_acres()
+{
+ print("HAMURABI: THINK AGAIN. YOU OWN ONLY " + a + " ACRES. NOW THEN,\n");
+}
+
+// Main control section
+async function main()
+{
+ print(tab(32) + "HAMURABI\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ print("TRY YOUR HAND AT GOVERNING ANCIENT SUMERIA\n");
+ print("FOR A TEN-YEAR TERM OF OFFICE.\n");
+ print("\n");
+
+ d1 = 0;
+ p1 = 0;
+ z = 0;
+ p = 95;
+ s = 2800;
+ h = 3000;
+ e = h - s;
+ y = 3;
+ a = h / y;
+ i = 5;
+ q = 1;
+ d = 0;
+ while (1) {
+ print("\n");
+ print("\n");
+ print("\n");
+ print("HAMURABI: I BEG TO REPORT TO YOU,\n");
+ z++;
+ print("IN YEAR " + z + ", " + d + " PEOPLE STARVED, " + i + " CAME TO THE CITY,\n");
+ p += i;
+ if (q <= 0) {
+ p = Math.floor(p / 2);
+ print("A HORRIBLE PLAGUE STRUCK! HALF THE PEOPLE DIED.\n");
+ }
+ print("POPULATION IS NOW " + p + "\n");
+ print("THE CITY NOW OWNS " + a + " ACRES.\n");
+ print("YOU HARVESTED " + y + " BUSHELS PER ACRE.\n");
+ print("THE RATS ATE " + e + " BUSHELS.\n");
+ print("YOU NOW HAVE " + s + " BUSHELS IN STORE.\n");
+ print("\n");
+ if (z == 11) {
+ q = 0;
+ break;
+ }
+ c = Math.floor(10 * Math.random());
+ y = c + 17;
+ print("LAND IS TRADING AT " + y + " BUSHELS PER ACRE.\n");
+ while (1) {
+ print("HOW MANY ACRES DO YOU WISH TO BUY");
+ q = parseInt(await input());
+ if (q < 0)
+ break;
+ if (y * q > s) {
+ exceeded_grain();
+ } else
+ break;
+ }
+ if (q < 0)
+ break;
+ if (q != 0) {
+ a += q;
+ s -= y * q;
+ c = 0;
+ } else {
+ while (1) {
+ print("HOW MANY ACRES DO YOU WISH TO SELL");
+ q = parseInt(await input());
+ if (q < 0)
+ break;
+ if (q >= a) {
+ exceeded_acres();
+ } else {
+ break;
+ }
+ }
+ if (q < 0)
+ break;
+ a -= q;
+ s += y * q;
+ c = 0;
+ }
+ print("\n");
+ while (1) {
+ print("HOW MANY BUSHELS DO YOU WISH TO FEED YOUR PEOPLE");
+ q = parseInt(await input());
+ if (q < 0)
+ break;
+ if (q > s) // Trying to use more grain than is in silos?
+ exceeded_grain();
+ else
+ break;
+ }
+ if (q < 0)
+ break;
+ s -= q;
+ c = 1;
+ print("\n");
+ while (1) {
+ print("HOW MANY ACRES DO YOU WISH TO PLANT WITH SEED");
+ d = parseInt(await input());
+ if (d != 0) {
+ if (d < 0)
+ break;
+ if (d > a) { // Trying to plant more acres than you own?
+ exceeded_acres();
+ } else {
+ if (Math.floor(d / 2) > s) // Enough grain for seed?
+ exceeded_grain();
+ else {
+ if (d >= 10 * p) {
+ print("BUT YOU HAVE ONLY " + p + " PEOPLE TO TEND THE FIELDS! NOW THEN,\n");
+ } else {
+ break;
+ }
+ }
+ }
+ }
+ }
+ if (d < 0) {
+ q = -1;
+ break;
+ }
+ s -= Math.floor(d / 2);
+ c = Math.floor(Math.random() * 5) + 1;
+ // A bountiful harvest!
+ if (c % 2 == 0) {
+ // Rats are running wild!!
+ e = Math.floor(s / c);
+ }
+ s = s - e + h;
+ c = Math.floor(Math.random() * 5) + 1;
+ // Let's have some babies
+ i = Math.floor(c * (20 * a + s) / p / 100 + 1);
+ // How many people had full tummies?
+ c = Math.floor(q / 20);
+ // Horros, a 15% chance of plague
+ q = Math.floor(10 * (2 * Math.random() - 0.3));
+ if (p < c) {
+ d = 0;
+ continue;
+ }
+ // Starve enough for impeachment?
+ d = p - c;
+ if (d <= 0.45 * p) {
+ p1 = ((z - 1) * p1 + d * 100 / p) / z;
+ p = c;
+ d1 += d;
+ continue;
+ }
+ print("\n");
+ print("YOU STARVED " + d + " PEOPLE IN ONE YEAR!!!\n");
+ q = 0;
+ p1 = 34;
+ p = 1;
+ break;
+ }
+ if (q < 0) {
+ print("\n");
+ print("HAMURABI: I CANNOT DO WHAT YOU WISH.\n");
+ print("GET YOURSELF ANOTHER STEWARD!!!!!\n");
+ } else {
+ print("IN YOUR 10-YEAR TERM OF OFFICE, " + p1 + " PERCENT OF THE\n");
+ print("POPULATION STARVED PER YEAR ON THE AVERAGE, I.E. A TOTAL OF\n");
+ print(d1 + " PEOPLE DIED!!\n");
+ l = a / p;
+ print("YOU STARTED WITH 10 ACRES PER PERSON AND ENDED WITH\n");
+ print(l + " ACRES PER PERSON.\n");
+ print("\n");
+ if (p1 > 33 || l < 7) {
+ print("DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY\n");
+ print("BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU HAVE\n");
+ print("ALSO BEEN DECLARED NATIONAL FINK!!!!\n");
+ } else if (p1 > 10 || l < 9) {
+ print("YOUR HEAVY-HANDED PERFORMANCE SMACKS OF NERO AND IVAN IV.\n");
+ print("THE PEOPLE (REMIANING) FIND YOU AN UNPLEASANT RULER, AND,\n");
+ print("FRANKLY, HATE YOUR GUTS!!\n");
+ } else if (p1 > 3 || l < 10) {
+ print("YOUR PERFORMANCE COULD HAVE BEEN SOMEWHAT BETTER, BUT\n");
+ print("REALLY WASN'T TOO BAD AT ALL. " + Math.floor(p * 0.8 * Math.random()) + " PEOPLE\n");
+ print("WOULD DEARLY LIKE TO SEE YOU ASSASSINATED BUT WE ALL HAVE OUR\n");
+ print("TRIVIAL PROBLEMS.\n");
+ } else {
+ print("A FANTASTIC PERFORMANCE!!! CHARLEMANGE, DISRAELI, AND\n");
+ print("JEFFERSON COMBINED COULD NOT HAVE DONE BETTER!\n");
+ }
+ }
+ print("\n");
+ print("SO LONG FOR NOW.\n");
+ print("\n");
+}
+
+main();