module Main where
--(c) Mackenzie Campbell, Manaar Hyder and Maya Ramamurthy. Permission is granted to distributed and modify this example, as long as this copyright statement is included
import Graphics.Gloss
import Graphics.Gloss.Data.Color
grey = greyN 0.4
grey1 = greyN 0.7
grey2 = greyN 0.8
grey3 = greyN 0.6
main = draw $
(Pictures[
(color green(Polygon [(-410,-400),(-410,0),(410,0),(410,-400)])), -- grass
Translate (-325) 300 (color yellow (ThickCircle 20 50)), -- moon
Translate (-300) 325 (color black (ThickCircle 20 50)), -- moon shadow
(color yellow(Polygon[(-140,325),(-125,350),(-110,325)])), -- star 1 - 6pt
(color yellow(Polygon[(-140,340),(-125,315),(-110,340)])), -- star 1 - 6pt
(color yellow(Polygon[(340,125),(325,150),(310,125)])), -- star 2 - 6pt
(color yellow(Polygon[(340,140),(325,115),(310,140)])), -- star 2 - 6pt
(color cyan (Polygon [(-280,175),(-295,175),(-340,125),(-315,125)])), -- lightening bolt - 1st half
(color cyan (Polygon [(-340,125),(-315,125),(-250,95),(-265,95)])), -- lightening bolt - 2nd half
(color cyan (Polygon [(-250,95),(-265,95),(-350,10),(-350,10)])), -- lightening bolt - 3rd half
(color yellow(Polygon [(-355,-10),(-355,10),(-345,10),(-345,-10)])), -- pumpkin stem
Translate (-300) 215 (color grey1 (ThickCircle 30 50)), -- cloud fluff 1
Translate (-350) 215 (color grey1 (ThickCircle 12 40)), -- cloud fluff 2 -- left
Translate (-300) 200 (color grey1 (ThickCircle 15 40)), -- cloud fluff 3 -- donut hole filling
Translate (-250) 215 (color grey1 (ThickCircle 12 40)), -- cloud fluff 4 -- right
Translate (300) 325 (color grey1 (ThickCircle 10 50)), -- skull head
(color black(Polygon [(273,282),(327,282),(327,302),(273,302)])), -- skull head cut off
(color grey1(Polygon [(275,287),(325,287),(325,302),(275,302)])), -- skull teeth
Translate (283) 325 (color black (ThickCircle 3 20)), -- skull eye
Translate (317) 325 (color black (ThickCircle 3 20)), -- skull eye
Translate (305) 300 (color black (ThickCircle 1 5)), -- skull nostril
Translate (295) 300 (color black (ThickCircle 1 5)), -- skull nostril
(color grey1(Polygon [(275,270),(325,270),(325,280),(275,280)])), -- skull lower jaw
Translate (200) 325 (color grey1 (ThickCircle 10 50)), -- smoke plume
Translate (122) 315 (color grey1 (ThickCircle 10 40)), -- smoke plume
Translate (162) 335 (color grey1 (ThickCircle 10 20)), -- smoke plume
Translate (160) 305 (color grey1 (ThickCircle 5 20)), -- smoke plume
Translate (233) 300 (color grey1 (ThickCircle 5 20)), -- smoke plume
Translate (240) 335 (color grey1 (ThickCircle 5 20)), -- smoke plume
Translate (-240) 350 (color yellow (ThickCircle 2 5)), -- simple star
Translate (-210) 300 (color yellow (ThickCircle 2 5)), -- simple star
Translate (-270) 50 (color yellow (ThickCircle 2 5)), -- simple star
Translate (-370) 100 (color yellow (ThickCircle 2 5)), -- simple star
Translate (90) 350 (color yellow (ThickCircle 2 5)), -- simple star
Translate (240) 250 (color yellow (ThickCircle 2 5)), -- simple star
Translate (360) 350 (color yellow (ThickCircle 2 5)), -- simple star
Translate (360) 200 (color yellow (ThickCircle 2 5)), -- simple star
Translate (240) 50 (color yellow (ThickCircle 2 5)), -- simple star
Translate (-240) 150 (color yellow (ThickCircle 2 5)), -- simple star
(color red (Polygon [(200,200),(200,-200),(-200,-200),(-200,200)])), -- base of house
(color grey(Polygon[(-200,200),(0,350),(200,200)])), -- roof of house
Translate 0 270(color black (ThickCircle 8 50)),--attic circle
(color black (Polygon [(-33,210),(-33,270),(33,270),(33,210)])),--attic square
Translate 0 270(color yellow (ThickCircle 8 46)),--attic circle lit
(color yellow (Polygon [(-31,212),(-31,268),(31,268),(31,212)])),--attic square lit
(color grey (Polygon [(100,200),(100,290),(150,290),(150,200)])),--chimney
(color magenta (Polygon [(50,50),(50,150),(150,150),(150,50)])),--window
(color magenta (Polygon [(-50,50),(-50,150),(-150,150),(-150,50)])),--window
(color black (Polygon [(-70,-180),(-70,30),(70,30),(70,-180)])),--door
Translate 50 (-100) (color cyan (ThickCircle 0.5 20)),--doorknob
(color violet (Polygon [(-40,-70),(-40,10),(40,10),(40,-70)])),--door window
(color black (Polygon [(50,50),(50,98),(98,98),(98,50)])),--bottom left square
(color black (Polygon [(102,50),(102,98),(150,98),(150,50)])),--bottom right square
(color black (Polygon [(102,102),(102,150),(150,150),(150,102)])),--top right square
(color black (Polygon [(50,102),(50,150),(98,150),(98,102)])),--top left square
(color black (Polygon [(-50,50),(-50,98),(-98,98),(-98,50)])),--bottom left square
(color black (Polygon [(-102,50),(-102,98),(-150,98),(-150,50)])),--bottom right square
(color black (Polygon [(-102,102),(-102,150),(-150,150),(-150,102)])),--top right square
(color black (Polygon [(-50,102),(-50,150),(-98,150),(-98,102)])),--top left square
(color orange (Polygon [(-2,212),(3,212),(3,301),(-2,301)])),--vertical line attic
(color orange (Polygon [(-31,248),(31,248),(31,252),(-31,252)])),--horizontal line attic
(color violet (Polygon [(50,50),(50,54),(150,54),(150,50)])),--window pane bottom
(color violet (Polygon [(50,50),(50,150),(54,150),(54,50)])),--window pane left
(color violet (Polygon [(146,50),(146,150),(150,150),(150,50)])),--window pane right
(color violet (Polygon [(50,146),(50,150),(150,150),(150,146)])),--window pane top
(color violet (Polygon [(-50,50),(-50,54),(-150,54),(-150,50)])),--window pane bottom
(color violet (Polygon [(-50,50),(-50,150),(-54,150),(-54,50)])),--window pane left
(color violet (Polygon [(-146,50),(-146,150),(-150,150),(-150,50)])),--window pane right
(color violet (Polygon [(-50,146),(-50,150),(-150,150),(-150,146)])),--window pane top
(color grey(Polygon [(-75,-400),(-50,-200),(50,-200),(75,-400)])), -- path
(color grey2 (Polygon [(-70,-200),(-70,-180),(70,-180),(70,-200)])),--topest step
(color grey3 (Polygon [(-90,-220),(-90,-200),(90,-200),(90,-220)])),--other step
(color azure (Polygon [(-40,-70),(-40,-30),(-40,-30),(-10,-70)])),--bottom left curtain
(color azure (Polygon [(-40,-30),(-40,10),(-10,10),(-40,10)])),--top left curtain
(color azure (Polygon [(10,10),(40,10),(40,-30),(10,10)])),--top right curtain
(color azure (Polygon [(10,-70),(40,-70),(40,-30),(10,-70)])),--bottom right curtain
(color yellow(Polygon [(-355,-10),(-355,10),(-345,10),(-345,-10)])), -- pumpkin stem
Translate (-350) (-50) (color orange (ThickCircle 20 50)), -- pumpkin
Translate (-350) (-50) (color black (Circle 45)), -- pumpkin
Translate (-350) (-50) (color black (ThickCircle 10 40)), -- pumpkin mouth 1 orange
Translate (-350) (-50) (color yellow (ThickCircle 10 35)), -- pumpkin mouth 1 yellow
Translate (-350) (-48) (color black (ThickCircle 10 35)), -- pumpkin mouth 1 black
Translate (-350) (-43) (color orange (ThickCircle 10 40)), -- pumpkin mouth 2 orange
(color black (Polygon [(-340,-40),(-330,-25),(-320,-40)])), -- pumpkin eye right
(color yellow (Polygon [(-336,-38),(-330,-27),(-324,-38)])), -- pumpkin eye right yellow
(color black (Polygon [(-380,-40),(-370,-25),(-360,-40)])), -- pumpkin eye left
(color yellow (Polygon [(-376,-38),(-370,-27),(-364,-38)])), -- pumpkin eye left yellow
(color black (Polygon [(-355,-50),(-350,-60),(-345,-50)])), -- pumpkin nose
(color yellow (Polygon [(-353,-51),(-350,-57),(-347,-51)])), -- pumpkin nose yellow
(color grey(Polygon [(-400,-250),(-400,-175),(-325,-175),(-325,-250)])), -- gravestone1
Translate (-363) (-185) (color grey (ThickCircle 16 45)), -- gravestone1
(color grey(Polygon [(-250,-250),(-250,-175),(-175,-175),(-175,-250)])), -- gravestone2
Translate (-213) (-185) (color grey (ThickCircle 16 45)), -- gravestone2
(color grey(Polygon [(-330,-150),(-330,-75),(-255,-75),(-255,-150)])), -- gravestone3
Translate (-293) (-85) (color grey (ThickCircle 16 45)), -- gravestone3
(color grey(Polygon [(400,-250),(400,-175),(325,-175),(325,-250)])), -- gravestone4
Translate (363) (-185) (color grey (ThickCircle 16 45)), -- gravestone4
(color grey(Polygon [(250,-250),(250,-175),(175,-175),(175,-250)])), -- gravestone5
Translate (213) (-185) (color grey (ThickCircle 16 45)), -- gravestone5
(color grey(Polygon [(330,-150),(330,-75),(255,-75),(255,-150)])), -- gravestone6
Translate (293) (-85) (color grey (ThickCircle 16 45)), -- gravestone6
Translate (-320) (-100) $ Scale 0.3 0.3 $ Text "RIP", -- RIP 1
Translate (-390) (-200) $ Scale 0.3 0.3 $ Text "RIP", -- RIP 2
Translate (-240) (-200) $ Scale 0.3 0.3 $ Text "RIP", -- RIP 3
Translate (260) (-100) $ Scale 0.3 0.3 $ Text "RIP", -- RIP 4
Translate (340) (-200) $ Scale 0.3 0.3 $ Text "RIP", -- RIP 5
Translate (190) (-200) $ Scale 0.3 0.3 $ Text "RIP", -- RIP 6
(color black(Polygon[(-400,-400),(-400,-150),(-393,-125), (-385,-150), (-385,-400)])),--fence 1
(color black(Polygon[(-350,-400),(-350,-150),(-343,-125), (-335,-150), (-335,-400)])),--fence 2
(color black(Polygon[(-300,-400),(-300,-150),(-293,-125), (-285,-150), (-285,-400)])),--fence 3
(color black(Polygon[(-250,-400),(-250,-150),(-243,-125), (-235,-150), (-235,-400)])),--fence 4
(color black(Polygon[(-200,-400),(-200,-150),(-193,-125), (-185,-150), (-185,-400)])),--fence 5
(color black(Polygon[(-150,-400),(-150,-150),(-143,-125), (-135,-150), (-135,-400)])),--fence 6
(color black(Polygon[(-100,-400),(-100,-150),(-93,-125), (-85,-150), (-85,-400)])),--fence 7
(color black(Polygon[(100,-400),(100,-150),(108,-125), (115,-150), (115,-400)])),--fence 8
(color black(Polygon[(150,-400),(150,-150),(158,-125), (165,-150), (165,-400)])),--fence 9
(color black(Polygon[(200,-400),(200,-150),(208,-125), (215,-150), (215,-400)])),--fence 10
(color black(Polygon[(250,-400),(250,-150),(258,-125), (265,-150), (265,-400)])),--fence 11
(color black(Polygon[(300,-400),(300,-150),(308,-125), (315,-150), (315,-400)])),--fence 12
(color black(Polygon[(350,-400),(350,-150),(358,-125), (365,-150), (365,-400)])),--fence 13
(color black(Polygon[(400,-400),(400,-150),(408,-125), (415,-150), (415,-400)])),--fence 14
(color black(Polygon [(-400,-330),(-400,-315),(-100,-315),(-100,-330)])), -- fence 15
(color black(Polygon [(100,-330),(100,-315),(400,-315),(400,-330)])), -- fence 16
(color black(Polygon [(-400,-230),(-400,-215),(-100,-215),(-100,-230)])), -- fence 17
(color black(Polygon [(100,-230),(100,-215),(400,-215),(400,-230)])), -- fence 18
(color black(Polygon [(-261,-155),(-257,-135),(-253,-155)])), -- grass spike 1- outline
(color green(Polygon [(-259,-155),(-257,-136),(-255,-155)])), -- grass spike 1
(color black(Polygon [(-253,-155),(-250,-135),(-247,-155)])), -- grass spike 2 - outline
(color green(Polygon [(-251,-155),(-250,-136),(-249,-155)])) -- grass spike 2
]
)
--colours: azure, bright, chartreuse, cyan, dark, dim, green, greyN, rose, light, magenta, orange, blue, black, red, green, yellow
draw = display
(InWindow "Haunted House" (810,750)(10,10)) black