RB_JSFiddle_A3

by Ryan Brown

HTML

<div id="formski">    
   <P>Number:<br></P>
            <input type="text" name="number" id="Fnumber" value="359"><br>    
    <br><input type="submit" id="Fclick" value="Guess"><br><br>
</div>
<div id="guessNumber"></div>

CSS

#Fclick {
    font-family: courier;
    font-size: 20px;
    color: beige;
    background-color: black;
    width: 150px;
    height: 50px;
}

#guessNumber {
    font-family: courier;
    font-size: 20px;
    color: black;
    background-color: beige;  
}

JavaScript

var outputarray = new Array();
document.getElementById("Fclick").onclick = function() {formskiSub()};

function formskiSub() {
    var numberToGuess = 0;
    var numberToGuess = document.getElementById("Fnumber").value;
    
    array = new Array(1000);
    for(var i=0; i < 1000; i++){// array 1-1000
      array[i] = i+1; 
    }
    if (numberToGuess > 1 && numberToGuess <= 1000) {
      outputarray = new Array();
      Search(array, numberToGuess);
      document.getElementById('guessNumber').innerHTML = outputarray.join("<br>");
    }
    else {
      document.getElementById('guessNumber').innerHTML = "You entered " + numberToGuess + " Please enter a number between 1 and 1000"
    }
}

function Search(array, targetValue) {
    var min = 0;
    var tries = 0;
    var max = array.length -1;
    var guess;

    while(min <= max) {
        guess = Math.floor((max + min) / 2);
        
        if (array[guess] == targetValue) {
            outputarray.push("Guessed "+ array[guess] + " - Got it!");
            outputarray.push("It took " + array[tries] + " tries.");
            return guess;
        }
        else if (array[guess] < targetValue) {
            tries++;
            outputarray.push("Guessed " + array[guess] + " - too low.");
            min = guess + 1;
        }
        else {
            tries++;
            outputarray.push("Guessed " + array[guess] + " - too high.");
            max = guess - 1;
        }
    }
}