On this page:
<initial-world>
<go>
1.18.10 Run, program, run

This section contains expressions that start the Chat Noir game going.

First, here is a function to compute state of the world at the start of a game.

  (define board-size 11)
  (define (make-initial-world)
    (define initial-board
      (add-n-random-blocked-cells
       6
       (empty-board board-size)
       board-size))
    (make-world initial-board
                (make-posn (quotient board-size 2)
                           (quotient board-size 2))
                'playing
                board-size
                #f
                #f))

Finally, we can define and provide a function to start the game by calling big-bang with the appropriate arguments.

<go> ::=
  (provide main)
  (define (main)
    (void
     (big-bang (make-initial-world)
               (on-draw render-world
                        (world-width board-size)
                        (world-height board-size))
               (on-key change)
               (on-release release)
               (on-mouse clack)
               (name "Chat Noir"))))