From d7348f5dfa3aac7c54e2476e36d784feeaf66c2a Mon Sep 17 00:00:00 2001 From: Qursch Date: Thu, 4 Mar 2021 15:26:28 -0500 Subject: [PATCH 1/2] Initial commit --- 82 Stars/javascript/stars.html | 9 ++++ 82 Stars/javascript/stars.js | 96 ++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 82 Stars/javascript/stars.html create mode 100644 82 Stars/javascript/stars.js diff --git a/82 Stars/javascript/stars.html b/82 Stars/javascript/stars.html new file mode 100644 index 00000000..c63aeb0d --- /dev/null +++ b/82 Stars/javascript/stars.html @@ -0,0 +1,9 @@ + + +STARS + + +

+
+
+
diff --git a/82 Stars/javascript/stars.js b/82 Stars/javascript/stars.js
new file mode 100644
index 00000000..d558e86f
--- /dev/null
+++ b/82 Stars/javascript/stars.js	
@@ -0,0 +1,96 @@
+// STARS
+//
+// Converted from BASIC to Javascript by Qursch
+//
+
+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 guesses = 7;
+var limit = 100;
+
+// Main program
+async function main()
+{
+    print(tab(33) + "STARS\n");
+    print(tab(15) + "CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY\n");
+    print("\n\n\n");
+
+    print("DO YOU WANT INSTRUCTIONS? (Y/N)");
+    var instructions = await input();
+    if(instructions.toLowerCase()[0] == "y") {
+        print(`I AM THINKING OF A WHOLE NUMBER FROM 1 TO ${limit}\n`);
+        print("TRY TO GUESS MY NUMBER.  AFTER YOU GUESS, I\n");
+        print("WILL TYPE ONE OR MORE STARS (*).  THE MORE\n");
+        print("STARS I TYPE, THE CLOSER YOU ARE TO MY NUMBER.\n");
+        print("ONE STAR (*) MEANS FAR AWAY, SEVEN STARS (*******)\n");
+        print(`MEANS REALLY CLOSE!  YOU GET ${guesses} GUESSES.\n\n\n`);
+    }
+    while (true) {
+        var randomNum = Math.floor(Math.random() * 150) + 1;
+        console.log(randomNum);
+
+        print("OK, I AM THINKING OF A NUMBER, START GUESSING.\n\n");
+
+        var loss = true;
+
+        for(var guessNum=1; guessNum <= guesses; guessNum++) {
+            print("YOUR GUESS");
+
+            var guess = parseInt(await input());
+
+            if(guess == randomNum) {
+                loss = false;
+                print("*".repeat(79) + "!!!\n");
+                print(`YOU GOT IT IN ${guessNum} GUESSES!!! LET'S PLAY AGAIN...\n\n`);
+                break;
+            }
+
+            var dist = Math.abs(guess - randomNum);
+              
+            //IMPLEMENT CHECK HERE
+        }
+
+        if(loss) {
+            print(`SORRY, THAT'S ${guesses} GUESSES. THE NUMBER WAS ${randomNum}\n\n`);
+        }
+    }
+}
+
+main();

From 60938ebc783c16d791265e79a74354e441a1f409 Mon Sep 17 00:00:00 2001
From: Charles Gersh 
Date: Thu, 4 Mar 2021 17:03:20 -0500
Subject: [PATCH 2/2] Finished Stars

---
 82 Stars/javascript/stars.js | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/82 Stars/javascript/stars.js b/82 Stars/javascript/stars.js
index d558e86f..5ffdd761 100644
--- a/82 Stars/javascript/stars.js	
+++ b/82 Stars/javascript/stars.js	
@@ -52,6 +52,7 @@ async function main()
     print(tab(15) + "CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY\n");
     print("\n\n\n");
 
+    // Instructions
     print("DO YOU WANT INSTRUCTIONS? (Y/N)");
     var instructions = await input();
     if(instructions.toLowerCase()[0] == "y") {
@@ -62,35 +63,46 @@ async function main()
         print("ONE STAR (*) MEANS FAR AWAY, SEVEN STARS (*******)\n");
         print(`MEANS REALLY CLOSE!  YOU GET ${guesses} GUESSES.\n\n\n`);
     }
+
+    // Game loop
     while (true) {
-        var randomNum = Math.floor(Math.random() * 150) + 1;
-        console.log(randomNum);
-
-        print("OK, I AM THINKING OF A NUMBER, START GUESSING.\n\n");
 
+        var randomNum = Math.floor(Math.random() * limit) + 1;
         var loss = true;
 
+        print("\nOK, I AM THINKING OF A NUMBER, START GUESSING.\n\n");
+        
         for(var guessNum=1; guessNum <= guesses; guessNum++) {
-            print("YOUR GUESS");
 
+            // Input guess
+            print("YOUR GUESS");
             var guess = parseInt(await input());
 
+            // Check if guess is correct
             if(guess == randomNum) {
                 loss = false;
-                print("*".repeat(79) + "!!!\n");
-                print(`YOU GOT IT IN ${guessNum} GUESSES!!! LET'S PLAY AGAIN...\n\n`);
+                print("\n\n" + "*".repeat(50) + "!!!\n");
+                print(`YOU GOT IT IN ${guessNum} GUESSES!!! LET'S PLAY AGAIN...\n`);
                 break;
             }
 
+            // Output distance in stars
             var dist = Math.abs(guess - randomNum);
-              
-            //IMPLEMENT CHECK HERE
+            if(isNaN(dist)) print("*");
+            else if(dist >= 64) print("*");
+            else if(dist >= 32) print("**");
+            else if(dist >= 16) print("***");
+            else if(dist >= 8) print("****");
+            else if(dist >= 4) print("*****");
+            else if(dist >= 2) print("******");
+            else print("*******")
+            print("\n\n")
         }
 
         if(loss) {
-            print(`SORRY, THAT'S ${guesses} GUESSES. THE NUMBER WAS ${randomNum}\n\n`);
+            print(`SORRY, THAT'S ${guesses} GUESSES. THE NUMBER WAS ${randomNum}\n`);
         }
     }
 }
 
-main();
+main();
\ No newline at end of file