|
|
@@ -116,29 +116,61 @@ async function tryPickExpert() {
|
|
|
magicJS.notification.appendNotifyInfo(tipsMsg);
|
|
|
}
|
|
|
|
|
|
-function calcExpertPickFactor(planDetail) {
|
|
|
- let latestItem = planDetail.head;
|
|
|
+function calcExpertItemFactor(expertItem) {
|
|
|
let factor = 0;
|
|
|
+ // 追一期中的局数
|
|
|
+ let firstNum = expertItem.firstNum;
|
|
|
+ // 追二期中的局数
|
|
|
+ let secondNum = expertItem.secondNum;
|
|
|
+ // 追三期中的局数
|
|
|
+ let thirdNum = expertItem.thirdNum;
|
|
|
+ // 连续中的局数
|
|
|
+ let continuousWin = expertItem.continuousWin;
|
|
|
+ // 最大连中的局数
|
|
|
+ let maxContinuousWin = expertItem.maxContinuousWin;
|
|
|
+ // 最大连错的局数
|
|
|
+ let maxContinuousError = expertItem.maxContinuousError;
|
|
|
+ // 最近100局错的局数
|
|
|
+ let errorNum = expertItem.errorNum;
|
|
|
+ // 最近100局的胜率
|
|
|
+ let winningProbability = parseInt(expertItem.winningProbability);
|
|
|
+
|
|
|
+ let scoreWinningProbability = winningProbability / 100 * 50;
|
|
|
+ let scoreMaxContinuousError = maxContinuousError / 100 * 50;
|
|
|
+ let scoreSecondNum = secondNum / 100 * 50;
|
|
|
+ let scoreFirstNum = firstNum / 100 * 20;
|
|
|
+ let scoreThirdNum = thirdNum / 100 * 20;
|
|
|
+ let scoreContinuousWin = continuousWin / 100 * 20;
|
|
|
+ let scoreMaxContinuousWin = maxContinuousWin / 100 * 10;
|
|
|
+ let totalScore = scoreWinningProbability + scoreMaxContinuousError + scoreSecondNum + scoreFirstNum + scoreThirdNum + scoreContinuousWin + scoreMaxContinuousWin;
|
|
|
+
|
|
|
+ factor = totalScore;
|
|
|
+ return factor;
|
|
|
+}
|
|
|
+
|
|
|
+function calcExpertPickFactor(planDetail) {
|
|
|
+ let expertItem = planDetail.head;
|
|
|
+ let factor = calcExpertItemFactor(expertItem);
|
|
|
if (planDetail.list) {
|
|
|
let list = planDetail.list;
|
|
|
- let continuousWrongCount = 0;
|
|
|
- let wrongCostTurn = 0;
|
|
|
+ let recContWrongCount = 0;
|
|
|
+ let recWrongCostTurn = 0;
|
|
|
for (let i = 1; i < list.length; i++) {
|
|
|
const item = list[i];
|
|
|
if (item.result == '错') {
|
|
|
- continuousWrongCount += 1;
|
|
|
- wrongCostTurn += item.rank;
|
|
|
+ recContWrongCount += 1;
|
|
|
+ recWrongCostTurn += item.rank;
|
|
|
} else {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- let continuousRightCount = 0;
|
|
|
- let rightCostTurn = 0;
|
|
|
+ let recContRightCount = 0;
|
|
|
+ let recRightCostTurn = 0;
|
|
|
for (let i = 1; i < list.length; i++) {
|
|
|
const item = list[i];
|
|
|
if (item.result == '中') {
|
|
|
- continuousRightCount += 1;
|
|
|
- rightCostTurn += item.rank;
|
|
|
+ recContRightCount += 1;
|
|
|
+ recRightCostTurn += item.rank;
|
|
|
} else {
|
|
|
break;
|
|
|
}
|
|
|
@@ -147,7 +179,6 @@ function calcExpertPickFactor(planDetail) {
|
|
|
let rightCount = 0;
|
|
|
let wrongCount = 0;
|
|
|
let count = Math.min(list.length, 10);
|
|
|
-
|
|
|
for (let i = 1; i < count; i++) {
|
|
|
const item = list[i];
|
|
|
if (item.result == '中') {
|
|
|
@@ -157,7 +188,7 @@ function calcExpertPickFactor(planDetail) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- factor = 60 * 1 / continuousRightCount + 30 * continuousWrongCount / 6 + 30 * 1 / rightCount + 30 * wrongCount / count;
|
|
|
+ factor = factor + 60 * 1 / recContRightCount + 30 * recContWrongCount / 6 + 30 * 1 / rightCount + 30 * wrongCount / count;
|
|
|
}
|
|
|
return factor;
|
|
|
}
|