bandwagoner

This commit is contained in:
Alexander Heldt
2025-11-03 21:46:56 +01:00
parent a454a8d40a
commit 2ac630dd8c
10 changed files with 605 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
pub type Coach {
Coach(name: String, former_player: Bool)
}
pub type Stats {
Stats(wins: Int, losses: Int)
}
pub type Team {
Team(name: String, coach: Coach, stats: Stats)
}
pub fn create_coach(name: String, former_player: Bool) -> Coach {
Coach(name:, former_player:)
}
pub fn create_stats(wins: Int, losses: Int) -> Stats {
Stats(wins:, losses:)
}
pub fn create_team(name: String, coach: Coach, stats: Stats) -> Team {
Team(name:, coach:, stats:)
}
pub fn replace_coach(team: Team, coach: Coach) -> Team {
Team(..team, coach:)
}
pub fn is_same_team(home_team: Team, away_team: Team) -> Bool {
home_team == away_team
}
pub fn root_for_team(team: Team) -> Bool {
let correct_coach = team.coach.name == "Gregg Popovich"
let coach_is_former_player = team.coach.former_player
let correct_team = team.name == "Chicago Bulls"
let sixty_or_more_wins = team.stats.wins >= 60
let underdogs = team.stats.losses > team.stats.wins
correct_coach
|| coach_is_former_player
|| correct_team
|| sixty_or_more_wins
|| underdogs
}