JSFiddle - React, Tailwind, and code Playground
by Vladimir
HTML
<div id="chartContainer" style=""></div>
x - кол-во игр, y - баланс на счету
<div id="chartContainer2"></div>
x - кол-во игр, y - баланс на счету
<div id="chartContainer3"></div>
x - кол-во игр, y - баланс на счету
<div id="chartContainer4"></div>
x - кол-во игр, y - баланс на счету
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
CSS
div {
height: 370px;
width: 100%;
}
JavaScript
function martin(params) {
// Функция для создания графика на основе данных
function create_line(data, chart_block, title) {
var chart = new CanvasJS.Chart(chart_block, {
animationEnabled: true,
theme: "light2",
title:{
text: title
},
axisY:{
includeZero: false
},
data: [{
type: "line",
dataPoints: data
}]
});
chart.render();
}
// Вероятность победы. Выражается в числе процентов.
var probability = params['probability'];
// Баланс на счету
var cash = params['start_cash'];
// Умножитель. Ставим 1, получаем 1*умножитель
var multiple = params['multiple'];
// Текущий шаг мартингейла
var cur_dep = 1;
// Количество игр
var count_games = params['count_games'];
// Логируем историю баланса для вывода на график
var history = [];
// Имитируем игру
for(var i = 0; i < count_games; i++) {
// Случайное число от 1 до 100 (включительно)
var r = Math.floor(Math.random() * 100) + 1
// Если случайное число попадает в диапазон числа вероятности, то мы проиграли
if(r > probability) {
cash -= cur_dep; // Вычитиваем из баланса
cur_dep *= 2; // Увеличиваем шаг мартингейла
} else {
cash += cur_dep*multiple; // Победа! Добавляем в баланс
cur_dep = 1; // Сбрасываем шаг мартингейла
}
history.push({y: cash}); // Запечатлим
}
// Рисуем график
create_line(history, params['chart_block'], params['title']);
}
martin({
probability: 50,
start_cash: 100,
multiple: 1,
count_games: 1000,
chart_block: "chartContainer",
title: 'Мартингейл при вероятности 0.5 и коэффициенте 1, на 1000 игр. - такого рулетки вам не дадут'
});
martin({
probability: 50,
start_cash: 100,
multiple: 0.95,
count_games: 1000,
chart_block: "chartContainer2",
title: 'Мартингейл при вероятности 0.5 и коэффициенте 0.9, на 1000 игр'
});
martin({
probability: 48,
start_cash: 100,
multiple: 1,
count_games:...