bandwagoner
This commit is contained in:
45
bandwagoner/src/bandwagoner.gleam
Normal file
45
bandwagoner/src/bandwagoner.gleam
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user