posted Jan 25, 2016, 3:40 AM by Samuel Konstantinovich   [ updated Jan 25, 2016, 3:41 AM ]

This is your final project exit quiz, it is a required part of your project. Complete this by the end of class unless you are absent, then complete it by the end of the day.

You must be logged in to a gmail account to access the form:

2016-01-20 Final Project Requirements

posted Jan 20, 2016, 6:12 AM by Samuel Konstantinovich   [ updated Jan 20, 2016, 7:30 AM ]

Please complete the practice finals here:
Also please print and familiarize yourself with this Reference sheet (you will get a copy on the final):

When I say "please", I really mean: "If you want to do well in my class, you must do this carefully, and check your answers on a computer/piazza/dojo"

Everyone MUST either:
A - Submit a version in your final project slot
B - Submit a comment:
 "<partner name> submitted it"
where you put your partner's name in the comment. DO NOT SAY "my partner submitted it"

-If you neglected to post a comment, or incorrectly did so, please fix it. 
-DO NOT CHANGE COMMENTS IF YOU SUBMITTED A FILE. This will alter the time stamp.

Video Game Related (feel free to skip)
Some of you may care: (since after finals you have some time to kill)
Last year I found a game for free for my students, sadly XCOM is no longer free. However! at $1 you can get it and more at


posted Jan 15, 2016, 4:58 AM by Samuel Konstantinovich   [ updated Jan 15, 2016, 5:30 AM ]

Reminder You have a version due today! Submit now if you can, but first: Here is how!

When submitting a project, and you have MORE THAN ONE FILE: Then you must zip all of your project files, and upload the zip file.

How do you zip something? Easy, ask google! 
What should you search for?

2016-01-14 Documentation

posted Jan 14, 2016, 5:26 AM by Samuel Konstantinovich   [ updated Jan 14, 2016, 5:26 AM ]

Goal Documentation

Info Tab:
Aspire to be better, not lazy. This is an easy portion of your grade if you spend 5 minutes every day on it. 

Sample Info tab: 

# Features and Directions
  1. press setup
  2. press go
  3. do stuff

  * No crying
  * No running
  * Try to win!

  * turtles
  * patches
  * colors

## Story
There really is no story... =(

# Development Log

## 01-01-2016

### Added Features

#### BOB:
  * World Setup
  * Created a ground and ceiling collision box for platforms.
  * Created gravity
  * Allowed to players to jump

#### AMY:
  * Player Setup 
  * Created left and right keys
  * Created a stop key

### Known Bugs
  * Controls get wonky if you collide ceiling then move in rapid sucession
    * This is because the ceiling might launch you beyond the ground, and thus you're stuck in a weird limbo state.
  * May fall through ground if going too fast
    * For some reason, Netlogo can't detect patches-here if you go too quickly

## 01-02-2016

### Added Features

#### BOB:
  * Worked with importing and exporting patch values and exponents
  * Developed a way to save levels
  * Added terminal velocity

#### AMY
  * Tightened controls slightly
  * Started working on shooting mechanics

### Known Bugs
  * The falling-through-ground bug was fixed via implementing terminal velocity
  * The control bug is still present from last time

## 01-03-2016
### Added Features

#### BOB
  * Added a very basic world editor (Separate net-logo file)
    * Allows for drawing platforms
    * Has turtle assisted drawing for straight lines
    * Can export save files

#### AMY
  * Further developed shooting controls

### Known Bugs
  * The control bug is still present


2016-01-13 Gravity Example:

posted Jan 13, 2016, 5:13 AM by Samuel Konstantinovich   [ updated Jan 13, 2016, 7:26 AM ]

Goal Project Time, Gravity Example:

globals [g]
turtles-own [xspeed yspeed]
to setup
  set g .2
  crt 1 [set size 4 set shape "sheep" set ycor 6 set yspeed 0]
  crt 1[
     set shape "circle"
     set size 4
     set xspeed random 2 + 1
     set yspeed 3
     setxy -20 -14
  ask patches with [pycor < -15][set pcolor white]    

to go
  every .1

to movestuff
  ask turtles
    set ycor ycor + yspeed 
    set xcor xcor + xspeed

to gravity
  ask turtles[ 
    set yspeed yspeed - g    
    checkGround; makes the y speed 0 if you are standing on ground

    ;not something you need but illustrates the speeds:
    set plabel word  xspeed word "," (round (yspeed * 10) / 10.0)

;these change a lot depending on your model

to checkGround
  if isOnGround? 
      set yspeed 0

to-report isOnGround?
  report  pcolor  = white


posted Jan 12, 2016, 5:36 AM by Samuel Konstantinovich   [ updated Jan 12, 2016, 6:16 AM ]

Goal : A-mazing Demo

This is fun code to play with so you can find the shortest path to a target patch (or a turtle on a given patch)
This assumes walls are white, and valid paths are black.

Here is the netlogo file:


posted Jan 7, 2016, 5:46 AM by Samuel Konstantinovich   [ updated Jan 11, 2016, 4:50 AM ]

Think about the way the user will interact with your program.
Mouse and Keyboard together.
Keyboard can trigger buttons, you cannot hold a button down, it just presses multiple times. 

Submit final project on the following dates:
Jan 15th 4pm
Jan 19th 4pm
Jan 22nd 4pm
Jan 25th 4pm (Final Submission)

There is a health fair Friday the 15th. I will grant students that want to go: 
-excuses from some late penalties. If both members of your group go, I will allow up to 24 hours late on the final project (final deadline*) without penalty. 
*The non-final deadlines don't have to be 100% perfect, so they should not need to be late. Please 

2016-01-07 Finalproject

posted Jan 7, 2016, 5:03 AM by Samuel Konstantinovich   [ updated Jan 7, 2016, 5:03 AM ]

Final Projects!

Informal Proposal Friday - Have an idea what you want to do, so you can start to work on prototype. The longer it takes to agree on things the less time you have to work on the prototype.

Prototypes Due Monday - Part of final project grade
Format something like this:
That is not an example of a good prototype (The 2nd page is an explanation of what you add, not a sample prototype)
It should include as many diagrams you need to convey your project idea. The goal of the prototype is to give you some guidelines or a roadmap to follow.

(Point values subject to change, for a few days while I refine the different components of the assignment)

Final project - 70 points (exams are typically 48-52 points, final exam is 100 points)

10 points: 
Prototype - 

15 points: 
    -The documentation tab should describe the features of the project
    -Describe what I should do to see how awesome your project is (directions, on how it works, and what to try so I don't miss cool features)
    -What bugs your project currently has
    -Day by day breakdown of who did what

20 points: 
Both partners worked on the project throughout the 2 week period. (there will be several HW server slots that at least one partner must submit working files to) - There will be a quiz on the last day that will test your knowledge of the parts of the project you did. Work implies CODING, not just art/design/music. 

25 points:
The actual project 
    -Does it work? 
    -Does it clearly indicate what is happening when I run it?
    -Is it a sufficiently rigorous project? (doing something similar to any previous labs without significant improvement is totally insufficient, you should NOT use any prior lab as "base code" because you can do better now)

2016-01-06 ZombieLab - Partner

posted Jan 6, 2016, 4:51 AM by Samuel Konstantinovich   [ updated Jan 6, 2016, 5:00 AM ]

Humans vs. Zombies part II, revenge of the ... zombies?

-If you both finished your labs: Get a copy of the working lab from your partner.
-If you BOTH don't have a working lab, fix your respective labs on your own, then swap.
-If one of you doesn't have a working lab...


New Zombie Behavior:

1. Make a safe haven for humans:
-Make your world max-pxcor 32, and max-pycor 32. 
-Change the size of patches so it fits on your screen.
-Setup must make an  11x11 square of blue patches in the middle of the board. Zombies cannot step on these patches, if they do, they must immediately move back 1.

2. Zombie Vision should be displayed on the screen. 
-New interface element:  Make a toggle switch viewableCones. This will be true or false depending if the switch is on or off.
-When viewableCones is toggled on: Make the zombies change the color of the patches in their vision cone to yellow. Patches that leave the vision cone should revert to black. You did something similar in a previous lab, integrating this into the code is the challenge. 
-The blue patches should not be changed to yellow by the zombie vision cones.  

3. Zombie Shape
-You must use ticks now. Setup needs reset-ticks. Go needs tick.
-Use on-ticks instead of continuous to smooth your animation.

-Zombies should change their shape and color every 3 ticks. 
-Zombies should change their shape between two "zombie" shapes. You can just make a copy of person, and modify it slightly, then mirror the shape. This should take no more than 2 minutes.

2016-01-05 Zombies Updated

posted Jan 5, 2016, 4:53 AM by Samuel Konstantinovich   [ updated Jan 5, 2016, 4:53 AM ]

Tomorrow: You will be required to swap your netlogo file with your partner, and add new features to your partner's code. This means you should be writing things in a readable and clear way (no crazy variable names or poor spacing/newlines)

Lab: Zombies vs Humans

Modifications to yesterday's lab:

1. Zombie Behavior:

-When there is a human in a cone of zombie-vision-radius (make a slider)zombie-vision-angle (make a slider) the Zombies chase after the closest human at a speed of 0.5 Otherwise they shamble. Shamble is a slow wiggle (move forward at 0.1, and modify the angle randomly +/- 20 degrees). 

-When a zombie catches a person (the person is on the same patch as the zombie):

    -the person dies

    -a new zombie is created. 

    -This new zombie turn 90 degrees so they separate quickly

Humans have a stamina variable, and start with maximum_stamina (make a slider)

2. Human Behavior when they don't see a zombie

-Humans normally wiggle at a speed of 0.2, angle at +/- 20 randomly.

-When a person wiggles, they also they gain 1 stamina (but no more than max-stamina (make a slider)

3.  Human Behavior when they see a zombie

    -When one or more zombies are closer than human_vision_radius (make a slider) units away, they try to run from the zombies.

    -When a person is running they check their stamina:

        When there is 1 or more stamina, the person move away from the nearest zombie at speed 1.0, they lose 1 stamina.

        When there is 0 stamina, the person moves away from the nearest zombie at speed 0.1 (do not recover stamina here)

4. Miscellaneous:

- Make Sliders for starting_zombies ( 1-20), starting_humans (1-100)

- Make Slider for maximum_stamina (20-100)

- Make Sliders for zombie_vision_radius, zombie_vision_angle, and human_vision_radius

- Make Monitors for : 

    the number of zombies

    the number of humans

- Your project should run at an appropriate speed. Put an every command in your go.

- Zombies are all different shades green, humans are all orange shades. (Don't make them too dark or bright)

- OPTIONALLY AT HOME: make different custom shapes (“zombie” , "uglyZombie" etc) in the shapes editor (don't spend too much time on this) Make sure you duplicate the “person” shape instead of just editing it, or you will lose the person shape.

You will need: 






for example:

To see if there are any things in a 5 unit radius

if any? things in-radius 5[

   do stuff


To face a specific thing

face thing

To face away, turn around after facing it.

To find the closest thing and turn it red

if any? things


ask min-one-of things [distance myself]

  [ set color red ]


1-10 of 72