36 lines
823 B
Haskell
36 lines
823 B
Haskell
module Main where
|
|
|
|
import Codingame
|
|
import Simulation.Board
|
|
import Simulation.Data
|
|
import Data.Vector as V
|
|
|
|
main :: IO ()
|
|
-- main = test
|
|
main = bundle
|
|
|
|
test :: IO ()
|
|
test = print $ Prelude.reverse $ loop1 (0,0) 10 []
|
|
|
|
loop1 :: Pos -> Int -> [Pos] -> [Pos]
|
|
loop1 pos depth acc
|
|
| depth == 0 = acc
|
|
| otherwise =
|
|
let sim = snd $ sim1 pos
|
|
acc' = sim : acc
|
|
in loop1 sim (depth - 1) acc'
|
|
|
|
sim1 :: Pos -> (Int, Pos)
|
|
sim1 pos = simulate board1 pos (0, 100, singleton (0,4))
|
|
|
|
board1 :: Board
|
|
board1 = fromList $ fmap fromList
|
|
[[Air, Air, Air, Air, Air],
|
|
[Air, Air, Air, Air, Air],
|
|
[Air, Air, Air, Air, Air],
|
|
[Air, Air, Air, Air, Air],
|
|
[Mine,Air, Air, Mine,Air]]
|
|
|
|
emptyBoard :: Board
|
|
emptyBoard = V.generate 5 (\_ -> V.replicate 5 Air)
|