2015-05-12 4 views
0

Кто-нибудь знает, как мне создать новое случайное число, чтобы я мог хранить их в разных переменных? (в temp1 и temp2) Я хочу, чтобы программа каждый раз запускала функцию «randomnumber» для каждой новой переменной, чтобы я мог хранить в ней новое случайное значение.Как генерировать случайное число каждый раз

<HTML> 
 
<!Foundation Page for building our Javascript programs> 
 
<HEAD> 
 
<TITLE>The Foundation Page </TITLE> 
 
<SCRIPT LANGUAGE = "JavaScript"> 
 
function main() 
 
{ 
 
\t totalscore() 
 
\t leaderboard() 
 
} 
 

 

 
function randomnumber() 
 
{ 
 
\t var randomnumber; 
 
\t randomnumber = Math.random()*3; 
 
\t return(Math.floor(randomnumber+0.2)); 
 
} 
 
function totalscore() 
 
{ 
 
\t var n; 
 
\t var p; 
 
\t var total; 
 
\t var temp1; 
 
\t var temp2; 
 
\t var score; 
 

 
\t 
 
\t score = 0; 
 
\t total=0 
 
\t 
 
\t for (n=0; n<10; n=n+1) 
 
\t { 
 
\t \t number = randomnumber(); 
 
\t \t if (number == 0) 
 
\t \t \t { 
 
\t \t \t \t score =score+0; 
 
\t \t \t } 
 
\t \t else if (number == 2) 
 
\t \t \t { 
 
\t \t \t \t score =score+2; 
 
\t \t \t } 
 
\t \t else if (number == 3) 
 
\t \t \t { 
 
\t \t \t \t score =score+3; 
 
\t \t \t } 
 
\t total=total+score; 
 
\t } 
 
temp1= total 
 
temp2= total 
 
document.write(total) 
 
document.write(total) 
 

 
\t 
 
} 
 

 
</SCRIPT> 
 
<HEAD> 
 
<BODY> 
 
<BODY BGCOLOUR = "WHITE"> 
 
<H2>The Foundation Page </H2> 
 
<HR> 
 
<SCRIPT LANGUAGE = "Javascript"> main() </SCRIPT> 
 
<INPUT NAME = "dobutton" TYPE = "button" value = "Start game" on Click = "game()"> 
 
<INPUT NAME = "dobutton" TYPE = "button" value = "Leaderboard" on Click = "leader()"> 
 
</BODY> 
 
</HTML>

+0

Я не понимаю вашу проблему, почему вы не можете назвать функцию randomnumber более одного раза (одно время для каждой переменной, в которую вы хотите сохранить случайное значение) – niceman

+0

Извините за неправильное объяснение, я хотел создать новое случайное значение и сохранить их в temp1 и temp2. Но генератор случайных чисел печатает 2 с одинаковым номером (например, 32, 32) – Ruben

+0

put 'score = 0; ... для (...) ... 'во внутреннюю функцию вызов перед каждым присваиванием. – Prusse

ответ

0

Я думаю, я знаю, что вы просите, и я выложу рабочий код ниже, а также объяснение того, почему вы получаете то же случайное число.

  1. У вас есть цикл for, который генерирует оценку и возвращает значение, которое вы храните в итоге. Проблема в том, что вы назначаете это число как temp1 AND temp 2, так что теперь они имеют одинаковый номер, тогда вы записываете оба номера на страницу. Что вам нужно сделать, так это иметь 2 разных вычисления. Приведенный ниже код будет исправить и дать вам 2 разных номера для вас составляет ...

    function totalscore() 
    { 
        var total1 = 0; 
        var total2 = 0; 
    
        for (var n=0; n<10; n++) 
        { 
         total1 = total1 + randomnumber(); 
         total2 = total2 + randomnumber(); 
        } 
        document.write(total1); 
        document.write(total2); 
    
    } 
    
  2. Теперь я был немного смущен в вашем коде, потому что оценка компаундирования на себе каждый раз, когда он пересчитывает в течение цикла , (То есть, если первые 5 баллов были 1, 2, 2, 1, 3, то общий балл будет 24, а не ожидаемый 9. Если это было сделано намеренно, нанесенная в этом коде вместо этого.

    function totalscore() 
    { 
        var total1 = 0; 
        var total2 = 0; 
        var score1 = 0; 
        var score2 = 0; 
    
        for (var n=0; n<10; n++) 
        { 
         score1 = score1 + randomnumber(); 
         total1 = total1 + score1; 
         score2 = score2 + randomnumber(); 
         total2 = total2 + score2; 
        } 
    
        document.write(total1); 
        document.write(total2); 
    } 
    

Удачи с проектом и обучением кодирования!

0

вопросов, я не имею замечая

  1. позади большинство заявлений
  2. Вы возвращающиеся Math.Floor на randomnumbe нет запятой r + 0.2, что делает + 0.2 ничего не делать.
  3. Вы вызываете onclick = 'game()' при нажатии кнопки, но нет игры(), но, возможно, это код, который мы не видим.
  4. Вы устанавливаете как temp1 и temp2 = общее, и с помощью document.write на общую дважды

Теперь вопрос заключается в том, чтобы сгенерировать случайное число. Вы делаете это правильно, хотя можете упростить его и использовать Math.floor(Math.random()*3) или return Math.floor(Math.random()*3). Разумеется, вы можете отключить 3 и заменить его сейчас тем, что вы хотите.

Смежные вопросы