feat(football): implement World Cup 2026 simulator and Empirical-Poisson Mixture Model
Build and Push Docker Image / build (push) Successful in 3m38s
Build and Push Docker Image / build (push) Successful in 3m38s
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package logic
|
||||
|
||||
// Team represents a football team.
|
||||
type Team struct {
|
||||
Name string `json:"name"`
|
||||
Group string `json:"group"` // e.g., "A", "B", ..., "L"
|
||||
}
|
||||
|
||||
// Match represents a group stage match between two teams.
|
||||
type Match struct {
|
||||
TeamA string `json:"team_a"`
|
||||
TeamB string `json:"team_b"`
|
||||
IsCompleted bool `json:"is_completed"`
|
||||
ScoreA int `json:"score_a"`
|
||||
ScoreB int `json:"score_b"`
|
||||
}
|
||||
|
||||
// ScoreOutcome represents a possible match score and its probability.
|
||||
type ScoreOutcome struct {
|
||||
ScoreA int `json:"score_a"`
|
||||
ScoreB int `json:"score_b"`
|
||||
Probability float64 `json:"probability"`
|
||||
}
|
||||
|
||||
// TeamStats holds the metrics used to rank teams within a group or across third-place teams.
|
||||
type TeamStats struct {
|
||||
TeamName string
|
||||
Points int
|
||||
GoalDifference int
|
||||
GoalsScored int
|
||||
// Fields used for tie-breaking comparison within the group
|
||||
H2HPoints int
|
||||
H2HGD int
|
||||
H2HGS int
|
||||
}
|
||||
|
||||
// TeamProbability represents the calculated qualification probabilities for a single team.
|
||||
type TeamProbability struct {
|
||||
TeamName string `json:"team_name"`
|
||||
Group string `json:"group"`
|
||||
DirectQualProb float64 `json:"direct_qual_prob"`
|
||||
ThirdQualProb float64 `json:"third_qual_prob"`
|
||||
TotalQualProb float64 `json:"total_qual_prob"`
|
||||
}
|
||||
Reference in New Issue
Block a user