diff --git a/67 One Check/javascript/onecheck.html b/67 One Check/javascript/onecheck.html
new file mode 100644
index 00000000..ffdb77e5
--- /dev/null
+++ b/67 One Check/javascript/onecheck.html
@@ -0,0 +1,9 @@
+
+
+ONE CHECK
+
+
+
+
+
+
diff --git a/67 One Check/javascript/onecheck.js b/67 One Check/javascript/onecheck.js
new file mode 100644
index 00000000..a9633b46
--- /dev/null
+++ b/67 One Check/javascript/onecheck.js
@@ -0,0 +1,151 @@
+// ONE CHECK
+//
+// 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 = [];
+
+// Main program
+async function main()
+{
+ print(tab(30) + "ONE CHECK\n");
+ print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
+ print("\n");
+ print("\n");
+ print("\n");
+ for (i = 0; i <= 64; i++)
+ a[i] = 0;
+ print("SOLITAIRE CHECKER PUZZLE BY DAVID AHL\n");
+ print("\n");
+ print("48 CHECKERS ARE PLACED ON THE 2 OUTSIDE SPACES OF A\n");
+ print("STANDARD 64-SQUARE CHECKERBOARD. THE OBJECT IS TO\n");
+ print("REMOVE AS MANY CHECKERS AS POSSIBLE BY DIAGONAL JUMPS\n");
+ print("(AS IN STANDARD CHECKERS). USE THE NUMBERED BOARD TO\n");
+ print("INDICATE THE SQUARE YOU WISH TO JUMP FROM AND TO. ON\n");
+ print("THE BOARD PRINTED OUT ON EACH TURN '1' INDICATES A\n");
+ print("CHECKER AND '0' AN EMPTY SQUARE. WHEN YOU HAVE NO\n");
+ print("POSSIBLE JUMPS REMAINING, INPUT A '0' IN RESPONSE TO\n");
+ print("QUESTION 'JUMP FROM ?'\n");
+ print("\n");
+ print("HERE IS THE NUMERICAL BOARD:\n");
+ print("\n");
+ while (1) {
+ for (j = 1; j <= 57; j += 8) {
+ str = "";
+ for (i = 0; i <= 7; i++) {
+ while (str.length < 4 * i)
+ str += " ";
+ str += " " + (j + i);
+ }
+ print(str + "\n");
+ }
+ print("\n");
+ print("AND HERE IS THE OPENING POSITION OF THE CHECKERS.\n");
+ print("\n");
+ for (j = 1; j <= 64; j++)
+ a[j] = 1;
+ for (j = 19; j <= 43; j += 8)
+ for (i = j; i <= j + 3; i++)
+ a[i] = 0;
+ m = 0;
+ while (1) {
+ // Print board
+ for (j = 1; j <= 57; j += 8) {
+ str = "";
+ for (i = j; i <= j + 7; i++) {
+ str += " " + a[i] + " ";
+ }
+ print(str + "\n");
+ }
+ print("\n");
+ while (1) {
+ print("JUMP FROM");
+ f = parseInt(await input());
+ if (f == 0)
+ break;
+ print("TO");
+ t = parseInt(await input());
+ print("\n");
+ // Check legality of move
+ f1 = Math.floor((f - 1) / 8);
+ f2 = f - 8 * f1;
+ t1 = Math.floor((t - 1) / 8);
+ t2 = t - 8 * t1;
+ if (f1 > 7 || t1 > 7 || f2 > 8 || t2 > 8 || Math.abs(f1 - t1) != 2 || Math.abs(f2 - t2) != 2 || a[(t + f) / 2] == 0 || a[f] == 0 || a[t] == 1) {
+ print("ILLEGAL MOVE. TRY AGAIN...\n");
+ continue;
+ }
+ break;
+ }
+ if (f == 0)
+ break;
+ // Update board
+ a[t] = 1;
+ a[f] = 0;
+ a[(t + f) / 2] = 0;
+ m++;
+ }
+ // End game summary
+ s = 0;
+ for (i = 1; i <= 64; i++)
+ s += a[i];
+ print("\n");
+ print("YOU MADE " + m + " JUMPS AND HAD " + s + " PIECES\n");
+ print("REMAINING ON THE BOARD.\n");
+ print("\n");
+ while (1) {
+ print("TRY AGAIN");
+ str = await input();
+ if (str == "YES")
+ break;
+ if (str == "NO")
+ break;
+ print("PLEASE ANSWER 'YES' OR 'NO'.\n");
+ }
+ if (str == "NO")
+ break;
+ }
+ print("\n");
+ print("O.K. HOPE YOU HAD FUN!!\n");
+}
+
+main();