1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| import Data.Monoid
import System.IO
import System.Random
import Graphics.Gloss
main = do
affiche
affiche = display
(InWindow
"Pascal"
(300, 300)
(10, 10))
black
(picture)
picture = pictures (listOfpoints n a i j b coul) -- ligne 17
where
a = [1,1,1,2]
n = 182400
i = 1
j = 1
b = 0
coul = 0
listOfpoints 0 _ _ _ _ _ = []
listOfpoints n a i j b coul = point : listOfpoints (n-1) a' i' j' b' coul'
where
i' = calci i j
j' = calcj i i' j
b' = calcb a n i' j'
a' = a ++ [b']
coul' = teinte b'
point = dessin n i' j' coul'
calci i j
|j == i = i + 1
|otherwise = i
calcj i i' j
|i' > i= 0
|j == i' = j
|otherwise = j + 1
calcb a n i' j'
|j' == 0 = 1
|j' == i' = (a !! (n + 4 + j'))
|otherwise = (a !! (n + 4 + j')) + (a !! (n + 4 + j' - i' ))`mod`2
teinte b'
|b' == 0 = 0
|b' < 128 = ((256`mod`(256 - 2*b'))`mod`13)
|otherwise = 0
dessin n i' j' coul' = pictures
[ (translate (fromIntegral i') (fromIntegral j') (color (myColor (coul')) (circle 1.0)))
, (translate (- (fromIntegral i')) (fromIntegral j') (color (myColor (coul')) (circle 1.0)))
, (translate (fromIntegral i') (- (fromIntegral j')) (color (myColor (coul')) (circle 1.0)))
, (translate (- (fromIntegral i')) (- (fromIntegral j')) (color (myColor (coul')) (circle 1.0)))
, (translate (fromIntegral j') (fromIntegral i') (color (myColor (coul')) (circle 1.0)))
, (translate (- (fromIntegral j')) (fromIntegral i') (color (myColor (coul')) (circle 1.0)))
, (translate (fromIntegral j') (- (fromIntegral i')) (color (myColor (coul')) (circle 1.0)))
, (translate (- (fromIntegral j')) (- (fromIntegral i')) (color (myColor (coul')) (circle 1.0)))
]
myColor coul'
|coul' < 0 = 0
|coul' < 16 = ([ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp] !! coul')
|otherwise = 0
ca = white
cb = light(light yellow)
cc = light yellow
cd = yellow
ce = light(light orange)
cf = light orange
cg = orange
ch = light (dark orange)
ci = light red
cj = red
ck = dark red
cl = light violet
cm = violet
cn = light(light (dark violet))
co = light ( dark violet)
cp = blue |
Partager