Skip to content

Instantly share code, notes, and snippets.

@AlexanderOtavka
Last active November 22, 2016 21:06
Show Gist options
  • Save AlexanderOtavka/e9d917d623ada459d56b90d4b4cbe0e8 to your computer and use it in GitHub Desktop.
Save AlexanderOtavka/e9d917d623ada459d56b90d4b4cbe0e8 to your computer and use it in GitHub Desktop.
Chihuligans - Grinnell CSC 151 Final Project.
#lang racket
(define and-rec
(lambda (lst)
(if (null? lst)
#t
(and (car lst) (and-rec (cdr lst))))))
(define rect
(lambda (x y width height)
(list 'rect x y width height)))
(define rect?
(lambda (object)
(and (list? object)
(= (length object) 5)
(eq? (car object) 'rect)
(and-rec (map number? (cdr object)))
(and-rec (map (r-s > 0) (cdddr object))))))
(define rect-x
(lambda (rectangle)
(when (not (rect? rectangle))
(error "rect-x: expected rect?, got " rectangle))
(list-ref rectangle 1)))
(define rect-y
(lambda (rectangle)
(when (not (rect? rectangle))
(error "rect-y: expected rect?, got " rectangle))
(list-ref rectangle 2)))
(define rect-width
(lambda (rectangle)
(when (not (rect? rectangle))
(error "rect-width: expected rect?, got " rectangle))
(list-ref rectangle 3)))
(define rect-height
(lambda (rectangle)
(when (not (rect? rectangle))
(error "rect-height: expected rect?, got " rectangle))
(list-ref rectangle 4)))
(define chihuligans
(lambda (n width height)
(random-seed n)
(let ([img (image-new width height)]
[rectangles (generate-rectangles n width height)])
(image-compute (get-gradient-function n) img)
(draw-borders rectangles n img)
(draw-splats rectangles n img)
(draw-sketches rectangles n img)
squares)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment