Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Уменьшение переменной в интервале (https://javascript.ru/forum/misc/60327-umenshenie-peremennojj-v-intervale.html)

Илья1812 22.12.2015 21:44

Уменьшение переменной в интервале
 
Приветствую знатоков JS. Проблема в следующем - есть 2 рандомных значения которые генерируются каждые 1000мс. Эти значения суммируются между собой и составляют "прибыль" за период в 1000мс. Затем каждое новое значение прибыли суммируется с предъидущим и получается - "доступные средства".
Есть также кнопка при нажатии на которую из "доступных средств",если их более 100, вычитается 100 а максимальное рандомное значение одной из переменных из которых составляется "прибыль "увеличивается.
Все выше описанное получается, только при нажатии на кнопку значение "доступных средств" остается прежним а максимальное рандомное увеличивается. Подскажите как решить проблему.
Вот код.
var Massiv_Prodanogo=[]; 

var Profit_Prodano_min = 1, Profit_Prodano_max = 10;
var Profit_Proiz_min = 0, Profit_Proiz_Prodano_max = 9;


setInterval(function (){


var Prodano_Ras = Math.floor(Math.random( ) * (Profit_Prodano_min - Profit_Prodano_max + 1)) + Profit_Prodano_max;

var Proiz_Ras = Math.floor(Math.random( ) * (Profit_Proiz_min - Profit_Proiz_Prodano_max + 1)) + Profit_Proiz_Prodano_max;


Massiv_Prodanogo.push(Prodano_Ras+Proiz_Ras); 

var Summ_Massiv_Prodanogo = summ_PR(Massiv_Prodanogo); 

document.querySelector('button[name="equipment_01"]').addEventListener('click',Buy)

function Buy(){
if (Summ_Massiv_Prodanogo>100){
Summ_Massiv_Prodanogo=Summ_Massiv_Prodanogo-100;
Profit_Prodano_max = Profit_Prodano_max +10;

}

} 

function Data_new(){
document.querySelector(".Profit_Vsego").innerHTML=Summ_Massiv_Prodanogo;
document.querySelector(".Profit_RAS").innerHTML=Prodano_Ras+Proiz_Ras;
document.querySelector(".Profit_Prodan").innerHTML=Prodano_Ras;
document.querySelector(".Profit_Proiz").innerHTML=Proiz_Ras;
}

Data_new();


},1000);

function summ_PR(arr) { 
	var result = 0; 
	arr.forEach(function(Prodano_Ras,Proiz_Ras) {
  	result =  result+Prodano_Ras+Proiz_Ras;
});
  return result;
}

Илья1812 23.12.2015 23:10

Помогите найти ошибку или посоветуйте в каком направлении работать? Буду рад любой помощи.

рони 23.12.2015 23:15

Илья1812,
попробуйте для начала отформатировать код
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 23.12.2015 23:36

Илья1812,
строки 17-35 надо вынести из интервала,

рони 23.12.2015 23:43

Цитата:

Сообщение от Илья1812
только при нажатии на кнопку значение "доступных средств" остается прежним

вычли после вычета показали результат

Илья1812 24.12.2015 00:00

Цитата:

Сообщение от рони (Сообщение 401166)
Илья1812,
строки 17-35 надо вынести из интервала,

Тогда значения генерируются только 1 раз

рони 24.12.2015 00:06

Илья1812,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<span class="Profit_Vsego"></span><br>
<span class="Profit_RAS"></span>=
<span class="Profit_Prodan"></span>+
<span class="Profit_Proiz"></span><br>
<input name="" type="button" value="buy">
<script>
var Massiv_Prodanogo = 0,
    Profit_Prodano_min = 1,
    Profit_Prodano_max = 10,
    Profit_Proiz_min = 0,
    Profit_Proiz_Prodano_max = 9,
    Prodano_Ras, Proiz_Ras;
document.querySelector('[type="button"]').addEventListener("click", Buy);

function Buy() {
    if (Massiv_Prodanogo > 100) {
        Massiv_Prodanogo -= 100;
        Profit_Prodano_max += 10;
        Profit_Proiz_Prodano_max += 10;
        Data_new()
    }
}

function Data_new() {
    document.querySelector(".Profit_Vsego").innerHTML = Massiv_Prodanogo;
    document.querySelector(".Profit_RAS").innerHTML = Prodano_Ras + Proiz_Ras;
    document.querySelector(".Profit_Prodan").innerHTML = Prodano_Ras;
    document.querySelector(".Profit_Proiz").innerHTML = Proiz_Ras
}
setInterval(function() {
    Prodano_Ras = Math.floor(Math.random() * (Profit_Prodano_min - Profit_Prodano_max + 1)) + Profit_Prodano_max;
    Proiz_Ras = Math.floor(Math.random() * (Profit_Proiz_min - Profit_Proiz_Prodano_max + 1)) + Profit_Proiz_Prodano_max;
    Massiv_Prodanogo += Prodano_Ras + Proiz_Ras;
    Data_new()
}, 1000);
</script>
</body>

</html>

Илья1812 24.12.2015 00:28

Спасибо, то что нужно!:)


Часовой пояс GMT +3, время: 17:38.