Skip to content

Commit

Permalink
Update Main backend
Browse files Browse the repository at this point in the history
  • Loading branch information
Foulest committed Dec 5, 2024
1 parent 66a6a99 commit 612fa9f
Showing 1 changed file with 42 additions and 4 deletions.
46 changes: 42 additions & 4 deletions src/main/java/net/foulest/swiss/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;

/**
* Main class for the program.
Expand All @@ -38,6 +40,7 @@ public final class Main {
* @param args The program's arguments.
*/
public static void main(String[] args) {
// Create teams with data from HLTV
Team g2 = new Team("G2", 1, 2, 1.046);
Team natusVincere = new Team("Natus Vincere", 2, 1, 1.098);
Team vitality = new Team("Vitality", 3, 3, 1.110);
Expand All @@ -55,6 +58,7 @@ public static void main(String[] args) {
Team big = new Team("BIG", 15, 19, 1.060);
Team mibr = new Team("MIBR", 16, 17, 1.064);

// Add teams to the list
teams.add(g2);
teams.add(natusVincere);
teams.add(vitality);
Expand All @@ -72,9 +76,43 @@ public static void main(String[] args) {
teams.add(big);
teams.add(mibr);

// At 1,000,000 simulations, the data is as accurate as it can be.
// On average, the default simulation of 1,000,000 brackets takes 60 seconds.
Bracket bracket = new Bracket(teams);
bracket.simulateMultipleBrackets(1000000);
// Get the amount of brackets to simulate based on user input
Scanner scanner = new Scanner(System.in, "UTF-8").useLocale(Locale.ROOT);
System.out.println("Swiss - CS2 Major Monte Carlo Simulation");
System.out.println("by Foulest | github.com/Foulest");
System.out.println();
System.out.println("Note: At 25,000,000 simulations, the data is as accurate as it can be.");
System.out.println("Anything beyond that would be computationally expensive and unnecessary.");
System.out.println("On average, every iteration of simulating 1,000,000 brackets takes 7.5 seconds.");
System.out.println("You can do the math to figure out how long it would take to simulate your desired amount of brackets.");
System.out.println("You can also enter 0 to just print the win probability of the matches below.");
System.out.println();
System.out.print("Enter the amount of brackets to simulate: ");
int bracketsToSimulate = scanner.nextInt();

// Validate the input
if (bracketsToSimulate < 0 || bracketsToSimulate > 60000000) {
System.out.println("Invalid input. Please enter a number between 1 and 50,000,000.");
return;
} else {
System.out.println("Simulating " + bracketsToSimulate + " brackets...");

// Simulate the brackets
Bracket bracket = new Bracket(teams);
bracket.simulateMultipleBrackets(bracketsToSimulate);
}

// You can also display the winner of a match based on win probability
// instead of simulating the entire bracket.
if (bracketsToSimulate == 0) {
Match.displayWinnerFromProbability(natusVincere, mibr);
Match.displayWinnerFromProbability(vitality, furia);
Match.displayWinnerFromProbability(mouz, theMongolZ);
Match.displayWinnerFromProbability(faze, heroic);
Match.displayWinnerFromProbability(g2, big);
Match.displayWinnerFromProbability(spirit, wildcard);
Match.displayWinnerFromProbability(_3DMAX, paiN);
Match.displayWinnerFromProbability(liquid, gamerLegion);
}
}
}

0 comments on commit 612fa9f

Please sign in to comment.