Directions: On the lines below, write the new contract and purpose for update-danger-2, so that it produces a Posn instead of a Number. Then complete the Design Recipe.

Contract and Purpose Statement

Every contract has three parts…​

_______________:______________->____

_______________________________________________________________________________________________________________

Examples

Write some examples, then circle and label what changes…​

(EXAMPLE (_______________ ____)______________________________)

(EXAMPLE (_______________ _____)_______________________________)

Definition

Write the definition, giving variable names to all your input values…​

(define (_______________ ____)

_______________________________)

Adding Your New Function to Your Game File

1 Find update-danger in your game file.

2 Directly beneath it, add update-danger-2 (including contract, purpose, examples, and definition) to your game file.

3 Scroll down to the very end of your game file and find the following PROVIDED CODE.

(define g (make-game TITLE TITLE-COLOR
                     BACKGROUND
                     DANGER update-danger
                     TARGET update-target
                     PLAYER update-player
                     mystery update-mystery
                     *distances-color* line-length distance
                     collide? onscreen?))
(play g)

4 Change update-danger to update-danger-2 in the list and click "Run" so that your program will use your new function with two-dimensional movement, instead of the old function with one-dimensional movement.

Note: If, at any point, you would like to use the old function, all you have to do is change this list so that it says update-danger instead of update-danger-2!

These materials were developed partly through support of the National Science Foundation, (awards 1042210, 1535276, 1648684, and 1738598). CCbadge Bootstrap by the Bootstrap Community is licensed under a Creative Commons 4.0 Unported License. This license does not grant permission to run training or professional development. Offering training or professional development with materials substantially derived from Bootstrap must be approved in writing by a Bootstrap Director. Permissions beyond the scope of this license, such as to run training, may be available by contacting contact@BootstrapWorld.org.