{-
    Opgaver på ugeseddel 1
-}
module Chapter2 where
{-
    NB: Jvf. opgave 2.1 burde modulet hedde UsePictures
    i stedet for som her Chapter2
-}
import Pictures hiding (rotate)

-- Opgave 2.1

-- blackHorse (p. 8)
blackHorse :: Picture
blackHorse = invertColour horse

-- rotate (p. 11)
rotate :: Picture -> Picture
rotate = flipH . flipV

-- rotateHorse (p. 11)
rotateHorse :: Picture
rotateHorse = rotate horse

-- Opgave 2.2

black :: Picture
black = superimpose (invertColour horse) (horse)

-- Opgave 2.3

white :: Picture
white = invertColour black

chess2x2 :: Picture
chess2x2 = above (sideBySide white black) (sideBySide black white)

-- dette kan laves rekursivt vha. følgende funktion

pic2x2 :: Picture -> Picture
pic2x2 pic = above (sideBySide pic pic) (sideBySide pic pic)

chess8x8 :: Picture
chess8x8 = (pic2x2 . pic2x2) chess2x2

-- Opgave 2.4

fourHorses1 :: Picture
fourHorses1 = above (sideBySide horse blackHorse) 
                    (sideBySide blackHorse horse)

fourHorses2 :: Picture
fourHorses2 = above (sideBySide horse blackHorse) 
                    (sideBySide (flipV blackHorse) (flipV horse))

fourHorses3 :: Picture
fourHorses3 = above (sideBySide horse blackHorse)
                    (sideBySide (rotate blackHorse) (rotate horse))


