diff --git a/LOST_THE_GAME.png b/LOST_THE_GAME.png
deleted file mode 100644
index 5b0adf4..0000000
Binary files a/LOST_THE_GAME.png and /dev/null differ
diff --git a/app.js b/app.js
index 11f1977..1c1dd6e 100644
--- a/app.js
+++ b/app.js
@@ -1,306 +1 @@
-//----------Constant Values and Objects---------
-let targetIpAddress = '';
-const lockoutMax = 9;
-let lockoutHits = 0;
-let ipAttempts = [];
-let time = 460000;
-let lose = false;
-let win = false;
-let timerElement = document.getElementById('timer');
-let timeInterval = {};
-let score = 0;
-let winScore = 7;
-
-const systemTypes = ["HIDDEN", "KALILINUX", "WINDOWSXP", "WINDOWS2000",
- "WINDOWS10", "REDHAT", "ANDROID4.4", "NETHUNTER"];
-
-const Entry = function(){
- return {
- value: createIP(),
- machineType: systemTypes[randomInRange(0, systemTypes.length - 1, 0)],
- status: "ACTIVE",
- hostName: createRandomName(),
- lastResponse: randomInRange(1000, 10000000, 0),
- systemLocation: {
- long: randomInRange(-180, 180, 3),
- lat: randomInRange(-180, 180, 3)
- }
- }
-}
-
-
-
-//-----------Helper Functions-----------
-function createIP() {
- let text = "";
- let possible = "0123456789";
-
- for (var i = 0; i < 10; i++)
- text += possible.charAt(Math.floor(Math.random() * possible.length));
-
- return text;
-}
-
-
-function formatIP(ip){
- let newIP = ip;
-
- newIP = newIP.slice(0, 2) + '.' + newIP.slice(2);
- newIP = newIP.slice(0, 6) + '.' + newIP.slice(6);
- newIP = newIP.slice(0, 9) + '.' + newIP.slice(9);
-
- return newIP;
-}
-
-
-function randomInRange(min, max, fixed){
- return (Math.random() * (max - min) + min).toFixed(fixed) * 1;
-}
-
-
-function createEntryHTML(entry){
-
- let {value, status, machineType, hostName, lastResponse, systemLocation} = entry;
- let ipAddress = formatIP(value);
- let htmlString = "
\
- \
- \
- | "+ formatIP(value) +" | \
- "+ status +" | \
- "+ hostName +" | \
- "+ machineType +" | \
- "+ lastResponse +"MS | \
- "+ systemLocation.long + "_" + systemLocation.lat +" | \
-
\
- "
-
- return htmlString;
-
-}
-
-function createEntryHTMLArray(entries){
-
- let htmlStrings = [];
-
- entries.forEach(function(e) {
- htmlStrings.push(createEntryHTML(e));
- }, this);
-
- return htmlStrings;
-}
-
-
-function createRandomName(){
- let text = "";
- let possible = "0123456789QWERTYUIOP_-ASDFGHJKLZXCVBNM";
-
- for (var i = 0; i < 10; i++)
- text += possible.charAt(Math.floor(Math.random() * possible.length));
-
- return text;
-}
-
-
-function createEntryArray(){
-
- let entries = [];
-
- for(i = 0; i < 27; i++){
- entries.push(new Entry());
- }
-
- return entries;
-}
-
-
-function concatEntryHTMLArray(entries){
-
- let htmlString = "";
-
- entries.forEach(function(e) {
- htmlString += e;
- }, this);
-
- return htmlString;
-}
-
-
-function renderEntries(htmlString){
- document.getElementById('entry_table').innerHTML = htmlString;
-}
-
-
-function extractIpAddressFromElement(element){
- ipAddress = element.getAttribute('data-ip-value');
- return ipAddress;
-}
-
-
-function selectTargetIpAddress(entries){
- let value = entries[randomInRange(0, entries.length - 1, 0)].value;
- return value;
-}
-
-
-function compareIpAddress(value){
- let levDis = new Levenshtein(value, targetIpAddress);
- let similarCount = 10 - levDis.distance;
- return similarCount;
-}
-
-
-
-//----------Business Logic--------
-
-function beginRound(){
- document.getElementById('entry_table').innerHTML = "";
- ipAttempts = [];
- let entryArray = createEntryArray();
- let htmlArray = createEntryHTMLArray(entryArray);
- let entryHTMLString = concatEntryHTMLArray(htmlArray);
- let entryElements = document.getElementsByClassName('entry');
-
- targetIpAddress = selectTargetIpAddress(entryArray);
- renderEntries(entryHTMLString);
- assignClickEvent(entryElements);
- renderSuccessPrecentage(score * 100/winScore);
- renderAttempts();
-
- console.log(targetIpAddress);
-
-}
-
-function beginClicked(){
- let instructions = document.getElementById('messege');
- instructions.innerHTML = ""
- instructions.className = "hidden";
- timeInterval = setInterval(countDown, 10);
- beginRound();
-}
-
-
-function assignClickEvent(elements){
-
- for(i = 0; i < elements.length; i++){
- let entry = elements[i];
- entry.onclick = function(){
- clickedEntry(entry);
- }
- }
-}
-
-
-function clickedEntry(entry){
-
- if(!lose && !win){
- let ipDifference = compareIpAddress(extractIpAddressFromElement(entry));
-
- if(ipDifference === 10){
- targetIpAddressFound(entry);
- }
- else{
- wrongEntrySelected(entry, ipDifference);
- renderLockout();
- renderSuccessPrecentage(ipDifference * 10);
- checkStatus();
- }
- }
-}
-
-
-function targetIpAddressFound(entry){
- score += 1;
- if(score > winScore - 1){
- gameWin();
- }
- else{
- beginRound();
- }
-}
-
-
-function wrongEntrySelected(entry, similarity){
- let value = extractIpAddressFromElement(entry);
-
- lockoutHits = lockoutHits + 1;
- saveAttempt(value);
- renderAttempts();
-
-
- console.log(value + " was incorrect. Tries left: " + (lockoutMax - lockoutHits));
- console.log(similarity + " characters were correct. Try Again!")
-}
-
-function renderSuccessPrecentage(percentage){
- let successPercentage = document.getElementById('precentage');
- successPercentage.innerHTML = Math.floor(percentage) + "%";
-}
-
-
-function renderLockout(){
- let lockoutElement = document.getElementById('lockout');
-
- lockoutElement.innerHTML = '';
-
- for(i = 0; i < lockoutHits; i++){
- lockoutElement.innerHTML = lockoutElement.innerHTML + " X ";
- }
-}
-
-
-function saveAttempt(value){
- ipAttempts.push(value);
-}
-
-
-function renderAttempts(){
- let attemptsTable = document.getElementById('attempts_table');
- attemptsTable.innerHTML = "";
-
- ipAttempts.forEach(function(e) {
- attemptsTable.innerHTML += "" + formatIP(e) + " | \
- " + compareIpAddress(e) + " similar chars | "
- }, this);
-}
-
-function checkStatus(){
- if(lockoutHits >= lockoutMax){
- gameLose();
- }
-}
-
-
-function gameLose(){
- let entryElements = document.getElementsByClassName('entry');
- let entryArray = [];
-
- lose = true;
-
- timerElement.innerHTML = 0;
- clearInterval(timeInterval);
-
- Array.prototype.forEach.call(entryElements, function(e) {
- e.className = "entry error"
- }, this);
-}
-
-function gameWin(){
- let targetElement = document.querySelector('[data-ip-value="' + targetIpAddress + '"]')
-
- win = true;
- targetElement.className = "win";
- clearInterval(timeInterval);
- timerElement.innerHTML = 0;
-
- console.log("Game Win");
-}
-
-function countDown(){
- if(time > 0 && !lose){
- time -= 10;
- timerElement.innerHTML = time;
- }
- else{
- gameLose();
- }
-}
+(function(a,b){'function'==typeof define&&'object'==typeof define.amd&&define.amd?define(function(){return b(a)}):'object'==typeof module&&module&&module.exports?module.exports=b(a):a.Levenshtein=b(a)})(this,function(){function b(g,h){var j,k;for(j=-1,k=g.length;++jc;c++)a+=b.charAt(Math.floor(Math.random()*b.length));return a}function formatIP(a){let b=a;return b=b.slice(0,2)+'.'+b.slice(2),b=b.slice(0,6)+'.'+b.slice(6),b=b.slice(0,9)+'.'+b.slice(9),b}function randomInRange(a,b,c){return 1*(Math.random()*(b-a)+a).toFixed(c)}function createEntryHTML(a){let{value:b,status:c,machineType:d,hostName:f,lastResponse:g,systemLocation:h}=a,j=formatIP(b),k=' | '+formatIP(b)+' | '+c+' | '+f+' | '+d+' | '+g+'MS | '+h.long+'_'+h.lat+' |
';return k}function createEntryHTMLArray(a){let b=[];return a.forEach(function(c){b.push(createEntryHTML(c))},this),b}function createRandomName(){let a='',b='0123456789QWERTYUIOP_-ASDFGHJKLZXCVBNM';for(var c=0;10>c;c++)a+=b.charAt(Math.floor(Math.random()*b.length));return a}function createEntryArray(){let a=[];for(i=0;27>i;i++)a.push(new Entry);return a}function concatEntryHTMLArray(a){let b='';return a.forEach(function(c){b+=c},this),b}function renderEntries(a){document.getElementById('entry_table').innerHTML=a}function extractIpAddressFromElement(a){return ipAddress=a.getAttribute('data-ip-value'),ipAddress}function selectTargetIpAddress(a){let b=a[randomInRange(0,a.length-1,0)].value;return b}function compareIpAddress(a){let b=new Levenshtein(a,targetIpAddress),c=10-b.distance;return c}function beginRound(){document.getElementById('entry_table').innerHTML='',ipAttempts=[];let a=createEntryArray(),b=createEntryHTMLArray(a),c=concatEntryHTMLArray(b),d=document.getElementsByClassName('entry');targetIpAddress=selectTargetIpAddress(a),renderEntries(c),assignClickEvent(d),renderSuccessPrecentage(100*score/winScore),renderAttempts(),console.log(targetIpAddress)}function beginClicked(){let a=document.getElementById('messege');a.innerHTML='',a.className='hidden',timeInterval=setInterval(countDown,10),beginRound()}function assignClickEvent(a){for(i=0;iwinScore-1?gameWin():beginRound()}function wrongEntrySelected(a,b){let c=extractIpAddressFromElement(a);++lockoutHits,saveAttempt(c),renderAttempts(),console.log(c+' was incorrect. Tries left: '+(lockoutMax-lockoutHits)),console.log(b+' characters were correct. Try Again!')}function renderSuccessPrecentage(a){let b=document.getElementById('precentage');b.innerHTML=Math.floor(a)+'%'}function renderLockout(){let a=document.getElementById('lockout');for(a.innerHTML='',i=0;i X '}function saveAttempt(a){ipAttempts.push(a)}function renderAttempts(){let a=document.getElementById('attempts_table');a.innerHTML='',ipAttempts.forEach(function(b){a.innerHTML+=''+formatIP(b)+' | '+compareIpAddress(b)+' similar chars | '},this)}function checkStatus(){lockoutHits>=lockoutMax&&gameLose()}function gameLose(){let a=document.getElementsByClassName('entry');lose=!0,timerElement.innerHTML=0,clearInterval(timeInterval),Array.prototype.forEach.call(a,function(c){c.className='entry error'},this)}function gameWin(){let a=document.querySelector('[data-ip-value="'+targetIpAddress+'"]');win=!0,a.className='win',clearInterval(timeInterval),timerElement.innerHTML=0,console.log('Game Win')}function countDown(){0