ЗП
s -> (a, s)?Size: a a a
ЗП
s -> (a, s)?AK
AK
AK
vacantRoom :: Game -> State Seed (Maybe Room)
vacantRoom =
nonEmptyRooms >>>
difference roomSet >>>
shuffle >>>
map head
onMove :: Room -> Game -> State Seed Game
onMove r g =
if member r g.batRooms then
vacantRoom g # map (fromMaybe r >>> g {playerRoom = _})
else
pure $ g { playerRoom = r }
AK
R:
AK
type GUIState =
{ command :: Maybe PlayerCommand
, lang :: Lang
, game :: Game
, seed :: Seed
}
R:
AK
AK
component :: forall q o m. H.Component HH.HTML q InitParams o m
component :: forall q o m. H.Component HH.HTML q InitParams o (StateT Seed m)
p
component :: forall q o m. H.Component HH.HTML q InitParams o m
component :: forall q o m. H.Component HH.HTML q InitParams o (StateT Seed m)
AK
ЗП
AK
p
p
ЗП
AK