From 4af44ebd0b4a72668217caa7a558fb09ec1a2b48 Mon Sep 17 00:00:00 2001 From: Arranun Date: Tue, 10 Dec 2019 17:12:15 +0100 Subject: [PATCH] More fixes or somehting like that --- day10.hs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/day10.hs b/day10.hs index 5899c98..afcd7e6 100644 --- a/day10.hs +++ b/day10.hs @@ -1,5 +1,4 @@ import Data.List as List -import Debug.Trace as Trace main = do @@ -7,11 +6,13 @@ main = do let layers = lines content let indexlayers = map(\x-> mapInd(\x y -> (y,x)) x ) layers let points = concat (mapInd(\x y->map(\x->((fst x,y),snd x))x) $ indexlayers) - let asteroids = (Trace.traceShowId(map fst (filter(\(x,y) -> y == '#' ) points))) + let asteroids = (map fst (filter(\(x,y) -> y == '#' ) points)) let changedAsteroids = changeCoordinate asteroids (2,2) --let sortedAsteroids = sortBy sortDistance asteroids --let view = length (getViews (asteroids) (3,4)) - --let result = List.maximum(map(\x-> length(getViews (asteroids) x)) (asteroids)) + let maximum = List.maximum(map(\x-> length(getViews (asteroids) x)) (asteroids)) + let station = head $ map(\x-> fst x) $ filter(\x-> snd x == maximum )(map(\x-> (x,( length(getViews (asteroids) x)))) (asteroids)) + let views = (getViews asteroids (2,2)) let lines = map reduce(map(\(x,y)-> ((x-2),(y-2))) (getBorder (2,2) 4)) let order = destroyOrders changedAsteroids lines (2,2) [] @@ -20,6 +21,8 @@ main = do --mapM putStrLn (map(\(x,y)->(show x ) ++(show y)) sortedAsteroids) -- putStrLn ( show result) --mapM putStrLn ( map show views) + putStrLn (show maximum) + putStrLn (show station) mapM putStrLn ( map show order) --mapM putStrLn (map show (layers)) --mapM putStrLn ( map show destroyed) @@ -28,9 +31,9 @@ destroyOrders :: [(Int,Int)] ->[(Int,Int)] -> (Int,Int) -> [(Int,Int)] -> [(Int destroyOrders ast laser station out |length ast > 0 = do let views = foldl getView [] ast - let destroyed = (Trace.traceShowId(destroyOrder views laser [])) + let destroyed = (destroyOrder views laser []) let newout = out ++ destroyed - let newast = (Trace.traceShowId(ast \\ destroyed)) + let newast = (ast \\ destroyed) destroyOrders newast laser station newout |otherwise = out