fork download
  1. {-# LANGUAGE NoMonomorphismRestriction #-}
  2.  
  3. main = narisavatKvadratiki
  4.  
  5. narisavatKvadratiki =
  6. flip mapM_ [razmer,razmer-odin.. -razmer] $ \yKoordinata ->
  7. flip mapM_ [-razmer..razmer] (\xKoordinata ->
  8. putStr [if elem [xKoordinata,yKoordinata] kvadratiki
  9. then chornayaTochka
  10. else pusto
  11. ,pusto]) >> putChar novayaLiniya where
  12. kvadratiki = popravitj $
  13. zaeboshitKvadratiki (dva*dva*dva) [[-razmer,razmer],[razmer,razmer],[razmer,-razmer],[-razmer,-razmer]]
  14. zaeboshitKvadratiki kolichestvo =
  15. map (map (uncurry zaeboshitLiniyu) . obzmeitj) .
  16. take kolichestvo .
  17. iterate (map (uncurry srednyaaTochka) . obzmeitj)
  18.  
  19. zaeboshitLiniyu odin dva =
  20. [zipWith (+) odin [dlina*cos ugol,dlina*sin ugol] | dlina <- [0,prirashenie..rasstojanie]] where
  21. ugol = vicheslitUgol odin dva
  22. rasstojanie = vicheslitRasstoyanie odin dva
  23.  
  24. vicheslitRasstoyanie [xKoordinata1,yKoordinata1] [xKoordinata2,yKoordinata2] =
  25. sqrt $ (xKoordinata1-xKoordinata2)^dva + (yKoordinata1-yKoordinata2)^dva
  26. vicheslitUgol [xKoordinata1,yKoordinata1] [xKoordinata2,yKoordinata2] =
  27. atan2 (yKoordinata2-yKoordinata1) (xKoordinata2-xKoordinata1)
  28. srednyaaTochka [xKoordinata1,yKoordinata1] [xKoordinata2,yKoordinata2] =
  29. [(xKoordinata1+xKoordinata2)/dva,(yKoordinata1+yKoordinata2)/dva]
  30.  
  31. obzmeitj spisok = zip spisok (tail spisok) ++ [(head spisok,last spisok)]
  32. popravitj = map (map round) . concat . concat
  33.  
  34. razmer = 24
  35. prirashenie = 0.1
  36. nolj:odin:dva:_ = [0..]
  37. nachalo = [nolj,nolj]
  38. [chornayaTochka,pusto,novayaLiniya] = "# \n"
Success #stdin #stdout 0.65s 7336KB
stdin
Standard input is empty
stdout
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
#                                             #   #                                             # 
#                                           #       #                                           # 
#                                         #           #                                         # 
#                                       #               #                                       # 
#                                     #                   #                                     # 
#                                   #                       #                                   # 
#                                 #                           #                                 # 
#                               #                               #                               # 
#                             #                                   #                             # 
#                           #                                       #                           # 
#                         #                                           #                         # 
#                       # # # # # # # # # # # # # # # # # # # # # # # # #                       # 
#                     # #                     #   #                     # #                     # 
#                   #   #                   #       #                   #   #                   # 
#                 #     #                 #           #                 #     #                 # 
#               #       #               #               #               #       #               # 
#             #         #             #                   #             #         #             # 
#           #           #           # # # # # # # # # # # # #           #           #           # 
#         #             #         # #         #   #         # #         #             #         # 
#       #               #       #   #       #       #       #   #       #               #       # 
#     #                 #     #     #     # # # # # # #     #     #     #                 #     # 
#   #                   #   #       #   # #   #   #   # #   #       #   #                   #   # 
# #                     # #         # #   # #       # #   # #         # #                     # # 
#                       #           #     #           #     #           #                       # 
# #                     # #         # #   # #       # #   # #         # #                     # # 
#   #                   #   #       #   # #   #   #   # #   #       #   #                   #   # 
#     #                 #     #     #     # # # # # # #     #     #     #                 #     # 
#       #               #       #   #       #       #       #   #       #               #       # 
#         #             #         # #         #   #         # #         #             #         # 
#           #           #           # # # # # # # # # # # # #           #           #           # 
#             #         #             #                   #             #         #             # 
#               #       #               #               #               #       #               # 
#                 #     #                 #           #                 #     #                 # 
#                   #   #                   #       #                   #   #                   # 
#                     # #                     #   #                     # #                     # 
#                       # # # # # # # # # # # # # # # # # # # # # # # # #                       # 
#                         #                                           #                         # 
#                           #                                       #                           # 
#                             #                                   #                             # 
#                               #                               #                               # 
#                                 #                           #                                 # 
#                                   #                       #                                   # 
#                                     #                   #                                     # 
#                                       #               #                                       # 
#                                         #           #                                         # 
#                                           #       #                                           # 
#                                             #   #                                             # 
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #