B:BD[
2.1081] → [
2.1081:1370]
logic :: GEnv -> Verse Hex -> Event -> Either () (Verse Hex)
logic _ v e
| Tick <- e = Right (sim maze () v)
| KeyPress 'r' <- e , r : rs <- seed (nodes v ! 0) = Right $ set (Hex { look = pick r total , seed = rs , parent = Nothing , i = 1 }) 0 (verse size)
| otherwise = Right v
data State = State { center :: Int }
logic :: GEnv -> (State,Verse Hex) -> Event -> Either () (State,Verse Hex)
logic _ (s,v) e
| Tick <- e = Right (s,sim maze () v)
| KeyPress 'r' <- e , r : rs <- seed (nodes v ! 0) = Right (s,set (Hex { look = pick r total , seed = rs , parent = Nothing , i = 1 }) 0 (verse size))
| KeyPress 'h' <- e = Right (s { center = shift v 1 H $ center s },v)
| KeyPress 'j' <- e = Right (s { center = shift v 1 N $ center s },v)
| KeyPress 'k' <- e = Right (s { center = shift v 1 I $ center s },v)
| KeyPress 'l' <- e = Right (s { center = shift v 1 L $ center s },v)
| otherwise = Right (s,v)