Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. type Navio = (Int, Int, Int, String)
  2. type Coordenada = (Int, Int)
  3.  
  4. criaNavio :: Int -> Int -> Int -> String -> Navio
  5. criaNavio x y t d = (x, y, t, d)
  6.  
  7. getCoordenadas :: Navio -> (Coordenada, Coordenada)
  8. getCoordenadas (x, y, t, d)
  9. | d == "horizontal" = ((x, y), (x + t, y))
  10. | otherwise = ((x, y), (x, y + t))
  11.  
  12. checaColisao :: (Coordenada, Coordenada) -> (Coordenada, Coordenada) -> Bool
  13. checaColisao ((x1, y1), (x1f, y1f)) ((x2, y2), (x2f, y2f))
  14. | x1 == x1f && x2 == x2f && x1 == x2 && ((y2 <= y1f && y2 >= y1) || (y2f <= y1f && y2f >= y1)) = True
  15. | y1 == y1f && y2 == y2f && y1 == y2 && ((x2 <= x1f && x2 >= x1) || (x2f <= x1f && x2f >= x1)) = True
  16. | otherwise = False
  17.  
  18. main :: IO()
  19. main = do
  20. x1 <- getLine
  21. y1 <- getLine
  22. t1 <- getLine
  23. d1 <- getLine
  24.  
  25. x2 <- getLine
  26. y2 <- getLine
  27. t2 <- getLine
  28. d2 <- getLine
  29.  
  30. let navio1 = criaNavio (read x1) (read y1) (read t1) d1
  31. let navio2 = criaNavio (read x2) (read y2) (read t2) d2
  32.  
  33. let coord1 = getCoordenadas navio1
  34. let coord2 = getCoordenadas navio2
  35.  
  36. putStrLn(show (checaColisao coord1 coord2))
  37.  
  38. putStrLn(show navio1)
  39. putStrLn(show coord1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement