- class NameOf a where
- data Brain ai memory = Brain {}
- data Half
- = FirstHalf
- | SecondHalf
- type PlayingTime = Minutes
- class Other a where
- other :: a -> a
- type TimeUnit = Seconds
- type Seconds = Float
- data Edge
- data PlayerID = PlayerID {}
- type ClubName = String
- type PlayersNumber = Int
- data Reprimand
- = Warning
- | YellowCard
- | RedCard
- data Success
- type FramesToGo = Int
- data RefereeAction
- = ReprimandPlayer PlayerID Reprimand
- | Hands PlayerID
- | TackleDetected PlayerID
- | SchwalbeDetected PlayerID
- | TheaterDetected PlayerID
- | DangerousPlay PlayerID
- | GameOver
- | PauseGame
- | AddTime ExtraTime
- | EndHalf
- | Goal ATeam
- | Offside PlayerID
- | DirectFreeKick ATeam Position
- | GoalKick ATeam
- | Corner ATeam Edge
- | ThrowIn ATeam Position
- | Penalty ATeam
- | CenterKick ATeam
- | Advantage ATeam
- | OwnBallIllegally PlayerID
- | DisplacePlayers Displacements
- | ContinueGame
- | TellMessage String
- data ATeam
- type Displacements = [(PlayerID, Displacement)]
- type Displacement = Position
- type ExtraTime = Minutes
- type Minutes = Float
Documentation
type PlayingTime = MinutesSource
type PlayersNumber = IntSource
If the referee gives a second yellow he should add red to it himself
type FramesToGoSource
= Int | number of frames to go before event ends |
data RefereeAction Source
ReprimandPlayer PlayerID Reprimand | player with given name receives reprimand |
Hands PlayerID | person is seen for doing hands |
TackleDetected PlayerID | person is seen for doing tackle |
SchwalbeDetected PlayerID | person is seen for doing schwalbe |
TheaterDetected PlayerID | |
DangerousPlay PlayerID | person is seen for doing dangerous actions |
GameOver | end of game |
PauseGame | game is paused |
AddTime ExtraTime | extra time is added to the game |
EndHalf | first half is over, teams go for a second half |
Goal ATeam | team playing at home has scored |
Offside PlayerID | player is offside at Home |
DirectFreeKick ATeam Position | a direct free kick is granted for team home at given position |
GoalKick ATeam | a goal kick is granted for team home |
Corner ATeam Edge | a corner kick is granted for team home |
ThrowIn ATeam Position | a throw in ball is granted for team home at given position |
Penalty ATeam | penalty at homeside |
CenterKick ATeam | team playing at home may start from the center |
Advantage ATeam | referee gives advantages to home-team |
OwnBallIllegally PlayerID | ball was for the other team |
DisplacePlayers Displacements | displaces all players at the provided position (used with free kicks) |
ContinueGame | |
TellMessage String | no effect on match, message is displayed by referee |
type DisplacementsSource
= [(PlayerID, Displacement)] | players that need to be displaced |
type DisplacementSource
= Position | new position |