2014-10-04 33 views
-1

嗨,我需要讓我的遊戲打印並顯示較早的最佳結果,並告訴我它是高分還是低分。但現在它只顯示低分,只要我猜2次..它甚至沒有顯示高分..可能有一些probs與我的localstorage,但我不知道.. maby你們有些人可能比我容易理解這個問題,如果你嘗試並運行它:)。似乎無法讓我的高分在我的號碼遊戲上工作

enter code here 

<html> 
<head> 
<title>Landmine Terror</title> 

</head> 
<body> 
<h1>Landmine Terror</h1> 
<p>Warning: Your browser will self-destruct if you step on the landmine!</p> 
<label>Pick a Number from 1-100 to approach the treasure:</label> 
<input id="user-input" type="text" /> 
<b><label id="games-won"></label></b> 
<br/> 
<input id="submit-button" type="button" value="Guess"; /> 
<br /> 
<button onclick= "localStorage.clear(); window.location.reload();">Reset highscore></button> 
<p id="lista"></p> 
<br/> 
<p id="highscore"></p> 
<br/> 
<input id="reset-button" type="button" value="New game" /> 
<br/> 

<b><label id="response"></label></b> 
<br/> 
<p id="gissningar"></p> 
<br/> 

<div id="user_progress"></div> 

<link rel="stylesheet" href="css/themes/default/jquery.mobile-1.4.4.min.css" /> 
<script src="js/jquery.js"></script> 
<script src="js/jquery.mobile-1.4.4.min.js"></script> 
<script src="js/apotek.js"></script> 

<script type="text/javascript"> 

var generateRandom = function() { 
    return parseInt(Math.random() * 100, 10) + 1; 
} 

var higher = 'Try a higher number!'; 
var lower = 'Try a lower number!'; 
var correct = 'Congrats, you got the right number!'; 
var promptMessage = 'Enter a number between 1 and 100'; 
var newGameStarted = 'A new game has started!'; 

var checkNumber = function(userNumber, randomNumber) { 
    //console.log(randomNumber) 

    if (userNumber < 1 || userNumber > 100) { 

    return promptMessage; 
    } 
    else if (userNumber > randomNumber) { 

    return lower; 
    } 
    else if (userNumber < randomNumber) { 

    return higher; 
    } 
    else { 
    gamesWon++; 

    return (correct + number.length); 
    } 
} 
function gissningarna(){ 
var gissningar = document.getElementById("gissningar").innerHTML = 
"Gissningar:" + (number.length); 
} 

var randomNumber = generateRandom(); 
var gamesWon = 0; 
$('#games-won').text(gamesWon + ' games won'); 

window.onload= function() { 

printList(); 
} 

var number=[] 

function sortering() 
{ 
var x=document.getElementById("lista"); 
number.push(document.getElementById("user-input").value); 
number.sort(function(a, b){return a-b}); 
x.innerHTML= "Gissade nummer: " + (number.join(', ')); 


} 

var answer = function() { 
    $('#response').show(); 

    var userNumber = $('#user-input').val(); 
    var checkResult = checkNumber(userNumber, randomNumber); 
    $('#user-input').focus(function(){ 
    $('#user-input').val(''); 
    }); 
    $('#response').text(checkResult) 
    $('#games-won').text(gamesWon + ' games won') 

}; 

window.onload= function() { 

printList(); 
} 
function highscore() { 
    var locallangd = localStorage.length; 
    //console.log(localStorage.length); 
    var sorteringArray = new Array(); 
    for (var ind = 0; ind < locallangd; ind++){ 
var idNyckel = localStorage.key(ind); 
var arrayValues = localStorage.getItem(idNyckel); 
sorteringArray.push(arrayValues); 
} 
sorteringArray.sort(function(a, b){return a-b}); 
if (number.length < sorteringArray[0]){ 
alert("rekord"); 
}else{ 
    if (number.length > sorteringArray[locallangd -1]){ 
    alert("bottenrekord"); 
    } 
    } 
} 

function sparaData() 

{

var newDate = new Date(); 
var idNyckel = newDate.getTime(); 
var arrayRecord = new Array(); 
var userNumber = document.getElementById("user-input").value; 
if (userNumber == randomNumber) { 
arrayRecord.push(number.length); 
} 

try { 
highscore(); 
localStorage.setItem(idNyckel, arrayRecord); 
} catch (e) { 
if (e == QUOTA_EXCEEDED_ERR) { 
alert("Quota exceeded!"); 
} 
} 

    printList(); 
return false; 
} 

function printList(){ 
var strResult =""; 
var antalPoster = localStorage.length; 

for (var i =0; i<antalPoster; i++){ 
var idNyckel = localStorage.key(i); 
var arrayValues = localStorage.getItem(idNyckel); 
var values = arrayValues.split("<li>"); 
var userName = values[0]; 

if (userName === "") { 
}else{ 
strResult += userName + "<br></li>"; 
} 
document.getElementById("highscore").innerHTML = strResult; 
} 
} 
$('#submit-button').on('click', answer); 
$('#submit-button').on('click', sortering); 
$('#submit-button').on('click', gissningarna); 
$('#submit-button').on('click', sparaData); 

$('#reset-button').on('click', function (e) { 

    randomNumber = generateRandom(); 
    $('#user-input').val(''); 
    $('#response').text(newGameStarted); 
    $('#lista').text(""); 
    $('#gissningar').text(""); 

number = [] 

}); 

</script> 

回答

0

所以你想存儲陣列。假設數組被稱爲分數。你可以寫:

localStorage.setItem("Scores", JSON.stringify(scores)); 

,並讀回:

scores = JSON.parse(localStorage.getItem("Scores")); 

更妙的是,使用http://rhaboo.org

+0

事情是我有,在的Funktion「sparadata」的數組。但是我的高分區功能並沒有加載記錄警報,而只是底部警報。我認爲那裏有一個問題與我的號碼。長度從不being Grunter 2014-10-04 15:07:16

+0

我認爲你應該忘記這個小錯誤,並解決大問題:你的持久代碼都與你的遊戲邏輯混淆。如果你的持久性是通過我發佈的兩條線完成的,那麼你可以忘掉所有關於它的內容,並專注於遊戲邏輯,這將非常簡單:你只需將當前得分與陣列中的最佳和最差進行比較。 – 2014-10-04 15:22:22

+0

對不起,我還沒有回答。我真的開始了一切,並找出了一些其他方式..只是沮喪,並強調要記得回答 – Grunter 2015-02-10 12:26:49

相關問題