Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type Navio = (Int, Int, Int, String)
- type Coordenada = (Int, Int)
- criaNavio :: Int -> Int -> Int -> String -> Navio
- criaNavio x y t d = (x, y, t, d)
- getCoordenadas :: Navio -> (Coordenada, Coordenada)
- getCoordenadas (x, y, t, d)
- | d == "horizontal" = ((x, y), (x + t, y))
- | otherwise = ((x, y), (x, y + t))
- checaColisao :: (Coordenada, Coordenada) -> (Coordenada, Coordenada) -> Bool
- checaColisao ((x1, y1), (x1f, y1f)) ((x2, y2), (x2f, y2f))
- | x1 == x1f && x2 == x2f && x1 == x2 && ((y2 <= y1f && y2 >= y1) || (y2f <= y1f && y2f >= y1)) = True
- | y1 == y1f && y2 == y2f && y1 == y2 && ((x2 <= x1f && x2 >= x1) || (x2f <= x1f && x2f >= x1)) = True
- | otherwise = False
- main :: IO()
- main = do
- x1 <- getLine
- y1 <- getLine
- t1 <- getLine
- d1 <- getLine
- x2 <- getLine
- y2 <- getLine
- t2 <- getLine
- d2 <- getLine
- let navio1 = criaNavio (read x1) (read y1) (read t1) d1
- let navio2 = criaNavio (read x2) (read y2) (read t2) d2
- let coord1 = getCoordenadas navio1
- let coord2 = getCoordenadas navio2
- putStrLn(show (checaColisao coord1 coord2))
- putStrLn(show navio1)
- putStrLn(show coord1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement