1 implementation module Team_MartLubbers
4 import FootballerFunctions
21 Team_MartLubbers :: !Home !FootballField -> Team
22 Team_MartLubbers home field
23 | home==West = westTeam
24 | otherwise = eastTeam
26 eastTeam = mirror field westTeam
27 westTeam = [keeper : fielders]
28 clubname = base_TeamName_MartLubbers +++ if (home == West) "_W" "_E"
29 keeper = Aesir clubname home field {zero & px=scale -0.5 field.flength} 1 "Thor"
30 fielders = [Aesir clubname home field {px=scale (-0.5*dx) field.flength,py=scale (0.5*dy) field.fwidth} nr name
31 \\ (dx,dy) <- west_positions_fielders
35 west_positions_fielders = [(0.20, 0.40)
49 Aesir :: !ClubName !Home !FootballField !Position !PlayersNumber !String -> Footballer
50 Aesir club home field position nr name
51 = { playerID = {clubName=club,playerNr=nr}
52 , name = name +++ "_" <+++ nr
57 , skills = (Running, Kicking, Rotating)
59 , stamina = max_stamina
61 , brain = {memory = zero, ai = mind field }
64 mind :: !FootballField !(!BrainInput, !Mem) -> (!BrainOutput, !Mem)
65 mind field (input, mm)
67 afterfix after point diff (input=:{me}, m)
68 | d < diff = after (input, m)
69 | otherwise = (move, m)
72 a = bearing zero me point
73 r = bearing me.nose me point
74 v = ms (max 6.0 (toReal d))
76 base_TeamName_MartLubbers :: String
77 base_TeamName_MartLubbers = "Æsir"