|
|
@@ -37,6 +37,14 @@ import objects.bets.Bet.Status;
|
|
|
@SuppressWarnings("rawtypes")
|
|
|
public class AnalysisTestController implements Initializable {
|
|
|
|
|
|
+ public static final String STATS_LEAGUE_NAME = "statsLeagueName";
|
|
|
+ public static final String STATS_HOME_WIN = "statHomeWin";
|
|
|
+ public static final String STATS_HOME_LOSS = "statsHomeLoss";
|
|
|
+ public static final String STATS_AWAY_WIN = "statsAwayWin";
|
|
|
+ public static final String STATS_AWAY_LOSS = "statsAwayLoss";
|
|
|
+ public static final String STATS_HOME_PERCENT = "statsHomePercent";
|
|
|
+ public static final String STATS_AWAY_PERCENT = "statsAwayPercent";
|
|
|
+ public static final String STATS_TOTAL_PERCENT = "statsTotalPercent";
|
|
|
private static final float MIN_COVER_ODDS = 1.25f;
|
|
|
private static final float MAX_COVER_ODDS = 2.25f;
|
|
|
private static final DecimalFormat FLOAT_FORMATTER = new DecimalFormat("0.00");
|
|
|
@@ -140,7 +148,8 @@ public class AnalysisTestController implements Initializable {
|
|
|
|
|
|
matchBetAmountColumn.setCellValueFactory(new PropertyValueFactory<>("betAmount"));
|
|
|
|
|
|
- Callback<TableColumn<SoccerMatch, Void>, TableCell<SoccerMatch, Void>> cellFactory = new Callback<TableColumn<SoccerMatch, Void>, TableCell<SoccerMatch, Void>>() {
|
|
|
+ Callback<TableColumn<SoccerMatch, Void>, TableCell<SoccerMatch, Void>> cellFactory =
|
|
|
+ new Callback<TableColumn<SoccerMatch, Void>, TableCell<SoccerMatch, Void>>() {
|
|
|
@Override
|
|
|
public TableCell<SoccerMatch, Void> call(final TableColumn<SoccerMatch, Void> param) {
|
|
|
return new TableCell<SoccerMatch, Void>() {
|
|
|
@@ -202,15 +211,15 @@ public class AnalysisTestController implements Initializable {
|
|
|
|
|
|
getActiveBets();
|
|
|
|
|
|
- statsLeagueNameColumn.setCellValueFactory(new MapValueFactory<>("statsLeagueName"));
|
|
|
- statsHomeWinColumn.setCellValueFactory(new MapValueFactory<>("statsHomeWin"));
|
|
|
- statsHomeLossColumn.setCellValueFactory(new MapValueFactory<>("statsHomeLoss"));
|
|
|
- statsAwayWinColumn.setCellValueFactory(new MapValueFactory<>("statsAwayWin"));
|
|
|
- statsAwayLossColumn.setCellValueFactory(new MapValueFactory<>("statsAwayLoss"));
|
|
|
+ statsLeagueNameColumn.setCellValueFactory(new MapValueFactory<>(STATS_LEAGUE_NAME));
|
|
|
+ statsHomeWinColumn.setCellValueFactory(new MapValueFactory<>(STATS_HOME_WIN));
|
|
|
+ statsHomeLossColumn.setCellValueFactory(new MapValueFactory<>(STATS_HOME_LOSS));
|
|
|
+ statsAwayWinColumn.setCellValueFactory(new MapValueFactory<>(STATS_AWAY_WIN));
|
|
|
+ statsAwayLossColumn.setCellValueFactory(new MapValueFactory<>(STATS_AWAY_LOSS));
|
|
|
|
|
|
- statsHomePercentColumn.setCellValueFactory(new MapValueFactory<>("statsHomePercent"));
|
|
|
- statsAwayPercentColumn.setCellValueFactory(new MapValueFactory<>("statsAwayPercent"));
|
|
|
- statsTotalPercentColumn.setCellValueFactory(new MapValueFactory<>("statsTotalPercent"));
|
|
|
+ statsHomePercentColumn.setCellValueFactory(new MapValueFactory<>(STATS_HOME_PERCENT));
|
|
|
+ statsAwayPercentColumn.setCellValueFactory(new MapValueFactory<>(STATS_AWAY_PERCENT));
|
|
|
+ statsTotalPercentColumn.setCellValueFactory(new MapValueFactory<>(STATS_TOTAL_PERCENT));
|
|
|
|
|
|
initializeStatsPanel();
|
|
|
}
|
|
|
@@ -227,13 +236,13 @@ public class AnalysisTestController implements Initializable {
|
|
|
gameViewTable.getItems().addAll(currentMatches);
|
|
|
}
|
|
|
|
|
|
- private void SetAnalyzisValue(SoccerMatch soccerMatch) {
|
|
|
+ private void setAnalyzisValue(SoccerMatch soccerMatch) {
|
|
|
int analyzeValue = getAnalyzeValue(soccerMatch);
|
|
|
soccerMatch.setAnalysisValue(analyzeValue);
|
|
|
}
|
|
|
|
|
|
private void addToBets(SoccerMatch data) {
|
|
|
- if (data.getAnalysisValueInt() > 0) {
|
|
|
+ if (data.getAnalysisValueInt() > 0f) {
|
|
|
setNewBet(data, true);
|
|
|
} else if (data.getAnalysisValueInt() < 0f) {
|
|
|
setNewBet(data, false);
|
|
|
@@ -259,7 +268,7 @@ public class AnalysisTestController implements Initializable {
|
|
|
}
|
|
|
|
|
|
@FXML
|
|
|
- private void CheckBetsAction() {
|
|
|
+ private void checkBetsAction() {
|
|
|
activeBetsTable.getItems().stream().filter(p -> p.getStatus() == Bet.Status.OPEN).forEach(this::checkBet);
|
|
|
activeBetsTable.refresh();
|
|
|
updateBetAmount();
|
|
|
@@ -272,9 +281,7 @@ public class AnalysisTestController implements Initializable {
|
|
|
|
|
|
final float betAmount = Float.parseFloat(FLOAT_FORMATTER.format(bankValue * (betPercent / 100f)));
|
|
|
currentBetAmount = betAmount;
|
|
|
- gameViewTable.getItems().forEach(i -> {
|
|
|
- i.setBetAmount(betAmount);
|
|
|
- });
|
|
|
+ gameViewTable.getItems().forEach(i -> i.setBetAmount(betAmount));
|
|
|
gameViewTable.refresh();
|
|
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
@@ -285,10 +292,22 @@ public class AnalysisTestController implements Initializable {
|
|
|
private void getActiveBets() {
|
|
|
List<Bet> analysisBets = GuiMysql.getInstance().getAnalysisBets();
|
|
|
|
|
|
+ analysisBets.forEach(b -> b.setBetCoveredNumber(getCoveredBets(b)));
|
|
|
+
|
|
|
activeBetsTable.getItems().addAll(analysisBets);
|
|
|
activeBetsTable.refresh();
|
|
|
}
|
|
|
|
|
|
+ private int getCoveredBets(Bet b) {
|
|
|
+ int returnValue = 0;
|
|
|
+ if (b.getCoveredBetId() > 0) {
|
|
|
+ returnValue += getCoveredBets(GuiMysql.getInstance().getAnalysisBet(b.getCoveredBetId()));
|
|
|
+ returnValue++;
|
|
|
+ }
|
|
|
+
|
|
|
+ return returnValue;
|
|
|
+ }
|
|
|
+
|
|
|
private Integer getAnalyzeValue(SoccerMatch soccerMatch) {
|
|
|
int result = 0;
|
|
|
|
|
|
@@ -311,10 +330,8 @@ public class AnalysisTestController implements Initializable {
|
|
|
int winLossRatioDiff = homeWinLossRatioCount - awayWinLossRatioCount;
|
|
|
int scoringTotalDiff = homeScoringTotal - awayScoringTotal;
|
|
|
|
|
|
- if (scoringDiffLastGames < 0 && winsCountDiff < 0 && winLossRatioDiff < 0 && scoringTotalDiff < 0) {
|
|
|
- result = (scoringDiffLastGames + winsCountDiff + winLossRatioDiff + scoringTotalDiff) / 4;
|
|
|
- } else if (scoringDiffLastGames > 0 && winsCountDiff > 0 && winLossRatioDiff > 0
|
|
|
- && scoringTotalDiff > 0) {
|
|
|
+ if ((scoringDiffLastGames < 0 && winsCountDiff < 0 && winLossRatioDiff < 0 && scoringTotalDiff < 0) ||
|
|
|
+ scoringDiffLastGames > 0 && winsCountDiff > 0 && winLossRatioDiff > 0 && scoringTotalDiff > 0) {
|
|
|
result = (scoringDiffLastGames + winsCountDiff + winLossRatioDiff + scoringTotalDiff) / 4;
|
|
|
}
|
|
|
}
|
|
|
@@ -331,9 +348,9 @@ public class AnalysisTestController implements Initializable {
|
|
|
}
|
|
|
|
|
|
@FXML
|
|
|
- private void GetMatchesAction() {
|
|
|
+ private void getMatchesAction() {
|
|
|
List<SoccerMatch> matches = GuiMysql.getInstance().getMatches(1, date.getValue().toString(), "ASC", true);
|
|
|
- matches.forEach(m -> SetAnalyzisValue(m));
|
|
|
+ matches.forEach(this::setAnalyzisValue);
|
|
|
matches = matches.stream().filter(m -> !m.getAnalysisValue().equals("No Bet")).toList();
|
|
|
addMatchesToTable(matches);
|
|
|
}
|
|
|
@@ -343,15 +360,11 @@ public class AnalysisTestController implements Initializable {
|
|
|
float currentDebt = 0f;
|
|
|
float result = currentBetAmount;
|
|
|
|
|
|
- boolean isHomeBet = newValue.getAnalysisValueInt() > 0 && newValue.getOdds1() > MIN_COVER_ODDS
|
|
|
- && newValue.getOdds1() < MAX_COVER_ODDS;
|
|
|
- boolean isAwayBet = newValue.getAnalysisValueInt() < 0 && newValue.getOdds2() > MIN_COVER_ODDS
|
|
|
- && newValue.getOdds2() < MAX_COVER_ODDS;
|
|
|
-
|
|
|
- if ((isHomeBet || isAwayBet) &&
|
|
|
- activeBetsTable.getItems().stream().anyMatch(p -> p.getStatus() == Bet.Status.LOST)) {
|
|
|
- Bet bet = activeBetsTable.getItems().stream().filter(p -> p.getStatus() == Bet.Status.LOST).findFirst()
|
|
|
- .get();
|
|
|
+ boolean activeBet = isActiveBet(newValue);
|
|
|
+ Optional<Bet> oBet =
|
|
|
+ activeBetsTable.getItems().stream().filter(p -> p.getStatus() == Bet.Status.LOST).findFirst();
|
|
|
+ if (activeBet && oBet.isPresent()) {
|
|
|
+ Bet bet = oBet.get();
|
|
|
|
|
|
Bet tempBet = bet;
|
|
|
int betCoverNumber = 0;
|
|
|
@@ -375,7 +388,7 @@ public class AnalysisTestController implements Initializable {
|
|
|
}
|
|
|
|
|
|
if (currentDebt > 0f && odds > 0f) {
|
|
|
- result = currentDebt / (odds - 1f); // + currentBetAmount;
|
|
|
+ result = currentDebt / (odds - 1f);
|
|
|
} else if (newValue.getBetAmount() != null) {
|
|
|
result = newValue.getBetAmount();
|
|
|
}
|
|
|
@@ -384,6 +397,15 @@ public class AnalysisTestController implements Initializable {
|
|
|
return Float.parseFloat(FLOAT_FORMATTER.format(result));
|
|
|
}
|
|
|
|
|
|
+ private boolean isActiveBet(SoccerMatch newValue) {
|
|
|
+ boolean isHomeBet = newValue.getAnalysisValueInt() > 0 && newValue.getOdds1() > MIN_COVER_ODDS
|
|
|
+ && newValue.getOdds1() < MAX_COVER_ODDS;
|
|
|
+ boolean isAwayBet = newValue.getAnalysisValueInt() < 0 && newValue.getOdds2() > MIN_COVER_ODDS
|
|
|
+ && newValue.getOdds2() < MAX_COVER_ODDS;
|
|
|
+
|
|
|
+ return isHomeBet || isAwayBet;
|
|
|
+ }
|
|
|
+
|
|
|
private void initializeStatsPanel() {
|
|
|
List<Bet> bets = GuiMysql.getInstance().getAnalysisBetStatistics();
|
|
|
for (Bet bet : bets) {
|
|
|
@@ -392,7 +414,7 @@ public class AnalysisTestController implements Initializable {
|
|
|
}
|
|
|
|
|
|
@FXML
|
|
|
- private void RemoveDoneBetsAction() {
|
|
|
+ private void removeDoneBetsAction() {
|
|
|
List<Bet> doneBets = activeBetsTable.getItems().stream()
|
|
|
.filter(p -> p.getStatus() == Status.DONE || p.getStatus() == Status.COVERED)
|
|
|
.toList();
|
|
|
@@ -419,6 +441,7 @@ public class AnalysisTestController implements Initializable {
|
|
|
int betId = GuiMysql.getInstance().addAnalysisBet(bet);
|
|
|
data.getPreviousBet().setStatus(Status.COVERED);
|
|
|
bet.setCoveredBetId(data.getPreviousBet().getId());
|
|
|
+ bet.setBetCoveredNumber(bet.getBetCoveredNumber() + 1);
|
|
|
GuiMysql.getInstance().setBetCovered(betId, bet.getCoveredBetId());
|
|
|
|
|
|
try {
|
|
|
@@ -448,9 +471,9 @@ public class AnalysisTestController implements Initializable {
|
|
|
|
|
|
private void updateBetAmount() {
|
|
|
if (!bettingPercentTextField.getText().isEmpty()) {
|
|
|
- float betLevel = Float.parseFloat(bettingPercentTextField.getText());
|
|
|
+ float betLevel = Float.parseFloat(bettingPercentTextField.getText().replace(",", "."));
|
|
|
currentBetAmount = Float.parseFloat(FLOAT_FORMATTER.format(
|
|
|
- getBank() * (betLevel / 100f)).replace(",","."));
|
|
|
+ getBank() * (betLevel / 100f)).replace(",", "."));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -458,74 +481,89 @@ public class AnalysisTestController implements Initializable {
|
|
|
String leagueName = b.getMatch().getLeagueName();
|
|
|
|
|
|
Optional<Map<String, Object>> leagueStatsRow = leagueBetStatsTable.getItems().stream()
|
|
|
- .filter(p -> p.get("statsLeagueName") != null && leagueName.equals(p.get("statsLeagueName")))
|
|
|
+ .filter(p -> p.get(STATS_LEAGUE_NAME) != null && leagueName.equals(p.get(STATS_LEAGUE_NAME)))
|
|
|
.findFirst();
|
|
|
|
|
|
if (leagueStatsRow.isEmpty()) {
|
|
|
- Map<String, Object> newItem = new HashMap<>();
|
|
|
- newItem.put("statsLeagueName", leagueName);
|
|
|
- newItem.put("statsHomeWin", b.isBetOnHomeTeam() && b.getHomeScore() > b.getAwayScore() ? 1 : 0);
|
|
|
- newItem.put("statsHomeLoss",
|
|
|
- b.isBetOnHomeTeam() && (b.getHomeScore() < b.getAwayScore() || b.getHomeScore() == b.getAwayScore())
|
|
|
- ? 1
|
|
|
- : 0);
|
|
|
- int statsHomeWin = (int) newItem.get("statsHomeWin");
|
|
|
- int statsHomeLoss = (int) newItem.get("statsHomeLoss");
|
|
|
- if (statsHomeWin > 0 || statsHomeLoss > 0) {
|
|
|
- newItem.put("statsHomePercent", (statsHomeWin / (float) (statsHomeWin + statsHomeLoss)) * 100);
|
|
|
- }
|
|
|
- newItem.put("statsAwayWin", b.isBetOnAwayTeam() && b.getHomeScore() < b.getAwayScore() ? 1 : 0);
|
|
|
- newItem.put("statsAwayLoss",
|
|
|
- b.isBetOnAwayTeam() && (b.getHomeScore() > b.getAwayScore() || b.getHomeScore() == b.getAwayScore())
|
|
|
- ? 1
|
|
|
- : 0);
|
|
|
-
|
|
|
- int statsAwayWin = (int) newItem.get("statsAwayWin");
|
|
|
- int statsAwayLoss = (int) newItem.get("statsAwayLoss");
|
|
|
- if (statsAwayWin > 0 || statsAwayLoss > 0) {
|
|
|
- newItem.put("statsAwayPercent", (statsAwayWin / (float) (statsAwayWin + statsAwayLoss)) * 100);
|
|
|
- }
|
|
|
- if (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss > 0) {
|
|
|
- newItem.put("statsTotalPercent",
|
|
|
- ((statsHomeWin + statsAwayWin)
|
|
|
- / (float) (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss)) * 100);
|
|
|
- }
|
|
|
+ Map<String, Object> newItem = createNewStatRow(b, leagueName);
|
|
|
ObservableList<Map<String, Object>> items = leagueBetStatsTable.getItems();
|
|
|
|
|
|
items.add(newItem);
|
|
|
} else {
|
|
|
Map<String, Object> map = leagueStatsRow.get();
|
|
|
- if (b.isBetOnHomeTeam() && b.getHomeScore() > b.getAwayScore()) {
|
|
|
- map.put("statsHomeWin", (int) map.get("statsHomeWin") + 1);
|
|
|
- } else if (b.isBetOnHomeTeam()
|
|
|
- && (b.getHomeScore() < b.getAwayScore() || b.getHomeScore() == b.getAwayScore())) {
|
|
|
- map.put("statsHomeLoss", (int) map.get("statsHomeLoss") + 1);
|
|
|
- } else if (b.isBetOnAwayTeam() && b.getHomeScore() < b.getAwayScore()) {
|
|
|
- map.put("statsAwayWin", (int) map.get("statsAwayWin") + 1);
|
|
|
- } else if (b.isBetOnAwayTeam()
|
|
|
- && (b.getHomeScore() > b.getAwayScore() || b.getHomeScore() == b.getAwayScore())) {
|
|
|
- map.put("statsAwayLoss", (int) map.get("statsAwayLoss") + 1);
|
|
|
+ boolean isHomeWin = isHomeWin(b);
|
|
|
+ boolean isAwayWin = isAwayWin(b);
|
|
|
+ if (b.isBetOnHomeTeam() && isHomeWin) {
|
|
|
+ map.put(STATS_HOME_WIN, (int) map.get(STATS_HOME_WIN) + 1);
|
|
|
+ } else if (b.isBetOnHomeTeam() && !isHomeWin) {
|
|
|
+ map.put(STATS_HOME_LOSS, (int) map.get(STATS_HOME_LOSS) + 1);
|
|
|
+ } else if (b.isBetOnAwayTeam() && isAwayWin) {
|
|
|
+ map.put(STATS_AWAY_WIN, (int) map.get(STATS_AWAY_WIN) + 1);
|
|
|
+ } else if (b.isBetOnAwayTeam() && !isAwayWin) {
|
|
|
+ map.put(STATS_AWAY_LOSS, (int) map.get(STATS_AWAY_LOSS) + 1);
|
|
|
}
|
|
|
|
|
|
- int statsHomeWin = (int) map.get("statsHomeWin");
|
|
|
- int statsHomeLoss = (int) map.get("statsHomeLoss");
|
|
|
- if (statsHomeWin > 0 || statsHomeLoss > 0) {
|
|
|
- map.put("statsHomePercent", (statsHomeWin / (float) (statsHomeWin + statsHomeLoss)) * 100);
|
|
|
- }
|
|
|
- int statsAwayWin = (int) map.get("statsAwayWin");
|
|
|
- int statsAwayLoss = (int) map.get("statsAwayLoss");
|
|
|
- if (statsAwayWin > 0 || statsAwayLoss > 0) {
|
|
|
- map.put("statsAwayPercent", (statsAwayWin / (float) (statsAwayWin + statsAwayLoss)) * 100);
|
|
|
- }
|
|
|
- if (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss > 0) {
|
|
|
- map.put("statsTotalPercent",
|
|
|
- ((statsHomeWin + statsAwayWin)
|
|
|
- / (float) (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss)) * 100);
|
|
|
- }
|
|
|
+ setStatWinPercents(map);
|
|
|
|
|
|
leagueBetStatsTable.getItems().set(leagueBetStatsTable.getItems().indexOf(map), map);
|
|
|
}
|
|
|
leagueBetStatsTable.refresh();
|
|
|
}
|
|
|
|
|
|
+ private static void setStatWinPercents(Map<String, Object> map) {
|
|
|
+ int statsHomeWin = (int) map.get(STATS_HOME_WIN);
|
|
|
+ int statsHomeLoss = (int) map.get(STATS_HOME_LOSS);
|
|
|
+ if (statsHomeWin > 0 || statsHomeLoss > 0) {
|
|
|
+ map.put(STATS_HOME_PERCENT, (statsHomeWin / (float) (statsHomeWin + statsHomeLoss)) * 100);
|
|
|
+ }
|
|
|
+ int statsAwayWin = (int) map.get(STATS_AWAY_WIN);
|
|
|
+ int statsAwayLoss = (int) map.get(STATS_AWAY_LOSS);
|
|
|
+ if (statsAwayWin > 0 || statsAwayLoss > 0) {
|
|
|
+ map.put(STATS_AWAY_PERCENT, (statsAwayWin / (float) (statsAwayWin + statsAwayLoss)) * 100);
|
|
|
+ }
|
|
|
+ if (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss > 0) {
|
|
|
+ map.put(STATS_TOTAL_PERCENT,
|
|
|
+ ((statsHomeWin + statsAwayWin)
|
|
|
+ / (float) (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss)) * 100);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean isAwayWin(Bet b) {
|
|
|
+ return b.getHomeScore() < b.getAwayScore();
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map<String, Object> createNewStatRow(Bet b, String leagueName) {
|
|
|
+ boolean homeWin = isHomeWin(b);
|
|
|
+ Map<String, Object> newItem = new HashMap<>();
|
|
|
+ newItem.put(STATS_LEAGUE_NAME, leagueName);
|
|
|
+ newItem.put(STATS_HOME_WIN, homeWin ? 1 : 0);
|
|
|
+ newItem.put(STATS_HOME_LOSS, !homeWin ? 1 : 0);
|
|
|
+ int statsHomeWin = (int) newItem.get(STATS_HOME_WIN);
|
|
|
+ int statsHomeLoss = (int) newItem.get(STATS_HOME_LOSS);
|
|
|
+ if (statsHomeWin > 0 || statsHomeLoss > 0) {
|
|
|
+ newItem.put(STATS_HOME_PERCENT, (statsHomeWin / (float) (statsHomeWin + statsHomeLoss)) * 100);
|
|
|
+ }
|
|
|
+ newItem.put(STATS_AWAY_WIN, b.isBetOnAwayTeam() && b.getHomeScore() < b.getAwayScore() ? 1 : 0);
|
|
|
+ newItem.put(STATS_AWAY_LOSS,
|
|
|
+ b.isBetOnAwayTeam() && (b.getHomeScore() > b.getAwayScore() || b.getHomeScore() == b.getAwayScore())
|
|
|
+ ? 1
|
|
|
+ : 0);
|
|
|
+
|
|
|
+ int statsAwayWin = (int) newItem.get(STATS_AWAY_WIN);
|
|
|
+ int statsAwayLoss = (int) newItem.get(STATS_AWAY_LOSS);
|
|
|
+ if (statsAwayWin > 0 || statsAwayLoss > 0) {
|
|
|
+ newItem.put(STATS_AWAY_PERCENT, (statsAwayWin / (float) (statsAwayWin + statsAwayLoss)) * 100);
|
|
|
+ }
|
|
|
+ if (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss > 0) {
|
|
|
+ newItem.put(STATS_TOTAL_PERCENT,
|
|
|
+ ((statsHomeWin + statsAwayWin)
|
|
|
+ / (float) (statsHomeWin + statsHomeLoss + statsAwayWin + statsAwayLoss)) * 100);
|
|
|
+ }
|
|
|
+ return newItem;
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean isHomeWin(Bet b) {
|
|
|
+ return b.getHomeScore() > b.getAwayScore();
|
|
|
+ }
|
|
|
+
|
|
|
}
|