Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.10.2015, 19:24
Интересующийся
Отправить личное сообщение для Николай777CR Посмотреть профиль Найти все сообщения от Николай777CR
 
Регистрация: 30.09.2015
Сообщений: 28

Сообщение от Lemme Посмотреть сообщение
40 * 0.1 = 4
Благодарю) у вас превосходное чувство юмора!
Ответить с цитированием
  #12 (permalink)  
Старый 07.10.2015, 19:38
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Моя твоя не понимать, друг.

Но, вот эмуляция того, что ты расписал.

// каждое число - кол-во вещей, которые положил пользователь.
var userItems = [60, 40];

// Получаем вещи, которые положил победитель
// Победил тот, кто положил больше.
var winner = Math.max.apply(null, userItems);

// получаем сумму всех вещей.
var items = userItems.reduce(function(a, b) { 
	return a + b;
});

// получаем 10% комиссии. (сумма всех вещей - вещи победителя) * 0.1
var commission = (items - winner) * 0.1;


alert(commission + '%');

Последний раз редактировалось Lemme, 07.10.2015 в 21:04.
Ответить с цитированием
  #13 (permalink)  
Старый 07.10.2015, 21:04
Интересующийся
Отправить личное сообщение для Николай777CR Посмотреть профиль Найти все сообщения от Николай777CR
 
Регистрация: 30.09.2015
Сообщений: 28

Спасибо, а как добавить элемент рандомности. Ну вот может выиграь и второй игрок, но у него меньше шансов)
Ответить с цитированием
  #14 (permalink)  
Старый 07.10.2015, 21:29
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Не знаю я алгоритмов, но первое, что приходит в голову:

function rand(chance) {
	var rnd = Math.round(Math.random() * 100);
    return rnd + chance >= 100 ? true : false;
}

function getTheWinner(items) {
    for (var i = 0; i < items.length; i++) {
    	if (rand(items[i])) {
        	return items[i];
        }
    }
    
    return getTheWinner(items);
}

alert(getTheWinner([60, 40]));

Последний раз редактировалось Lemme, 07.10.2015 в 21:49.
Ответить с цитированием
  #15 (permalink)  
Старый 07.10.2015, 21:31
Интересующийся
Отправить личное сообщение для Николай777CR Посмотреть профиль Найти все сообщения от Николай777CR
 
Регистрация: 30.09.2015
Сообщений: 28

Спасибо
Ответить с цитированием
  #16 (permalink)  
Старый 07.10.2015, 21:51
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Слегка изменил функцию getTheWinner, ибо она каждый раз проходила по всем элементам массива, даже если победитель был найден.

Учти, что шанс = кол-ву предметов.

Последний раз редактировалось Lemme, 07.10.2015 в 23:07.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск