User Tools

Site Tools


spcs:2015:day4

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
spcs:2015:day4 [2015/07/08 20:23]
ffpaladin
spcs:2015:day4 [2015/07/09 00:57]
ffpaladin [Class Assignments]
Line 17: Line 17:
     - Step 2: make it visual with rectangles     - Step 2: make it visual with rectangles
     - http://​visualgo.net/​sorting.html     - http://​visualgo.net/​sorting.html
-  - **Processing: ​Physics** - Create objects that represent physics. You can make it more realistic, like with gravity if you are able. +  - **Processing: ​Seurat Painting** - How do we make a Seurat Painting animation in Processing 
-  - **Processing: Simulation** - Pick a simulation that will teach me something. +    Step 1: Make an animation 
-  **Processing: Make a Game** - To make a game, give it interactions and a winning condition (Ludus and Paida). +    Step 2: Make it so that the user can change the size of the circle
-  **Processing (Bonus)Interaction** - Make any of the above MORE interactive.+
   - **Github** - You can store your processing projects directly there and run them with Processing.js - Read: http://​processingjs.org/​articles/​jsQuickStart.html (Similar to yesterday)   - **Github** - You can store your processing projects directly there and run them with Processing.js - Read: http://​processingjs.org/​articles/​jsQuickStart.html (Similar to yesterday)
  
Line 35: Line 34:
  
 <code java> <code java>
 +
 +// Selection Sort
  
  
Line 85: Line 86:
   - Jeff, Samuel   - Jeff, Samuel
   - Chris, Frank   - Chris, Frank
 +
 +
 +<code java>
 +
 +
 +// Credit: RadioTech@Github
 +// Visual Sort
 +
 +int i = 0, j = 0;
 +int tempcheesestick;​
 +int sticks = 40;
 +
 +int[] cheesesticks = new int [sticks];
 +int[] oldsticks = new int [sticks];
 +
 +void setup() {
 +  ​
 +  ​
 +  size(500,​400);​
 +  for(int fi = 0; fi < sticks; fi++){
 +    cheesesticks[fi] = round(random(500));​
 +    oldsticks[fi] = cheesesticks[fi];​
 +  }
 +}
 +
 +void draw() {
 +  ​
 +  ​
 +  if(j>​-1){
 +    ​
 +    ​
 +    if(i>​-1){
 +      if(cheesesticks[i]>​cheesesticks[i+1]){
 +        tempcheesestick = cheesesticks[i];  ​
 +        cheesesticks[i] = cheesesticks[i+1];​
 +        cheesesticks[i+1] = tempcheesestick;​
 +      }
 +      ​
 +      i++;
 +      if(i >= sticks-1){
 +         i = 0;
 +         j++;
 +      }
 +    }
 +    ​
 +    ​
 +    if(j >= sticks-1){
 +       j = -1; 
 +    }
 +    ​
 +  }
 +  ​
 +  rectMode(CENTER);​
 +  background(255);​
 +  for(int fi = 0; fi < sticks; fi++){
 +    if(cheesesticks[fi] == oldsticks[fi]){
 +       ​fill(255,​200,​0); ​
 +    } else {
 +       ​fill(255,​0,​0); ​
 +    }
 +    ​
 +    rect(cheesesticks[fi]/​2-1,​(400/​sticks)*fi+(400/​sticks)/​2,​cheesesticks[fi],​400/​sticks);​
 + 
 +    oldsticks[fi] = cheesesticks[fi];​
 +  }
 +  ​
 +</​code>​
 +
 +<code java>
 +
 +// Car Objects from Processing.org
 +
 +// Example: Two Car objects
 +Car myCar1;
 +Car myCar2; // Two objects!
 +
 +void setup() {
 +  size(200,​200);​
 +  // Parameters go inside the parentheses when the object is constructed.
 +  myCar1 = new Car(color(255,​0,​0),​0,​100,​2); ​
 +  myCar2 = new Car(color(0,​0,​255),​0,​10,​1);​
 +}
 +
 +void draw() {
 +  background(255);​
 +  myCar1.drive();​
 +  myCar1.display();​
 +  myCar2.drive();​
 +  myCar2.display();​
 +}
 +
 +// Even though there are multiple objects, we still only need one class. ​
 +// No matter how many cookies we make, only one cookie cutter is needed.
 +class Car { 
 +  color c;
 +  float xpos;
 +  float ypos;
 +  float xspeed;
 +
 +  // The Constructor is defined with arguments.
 +  Car(color tempC, float tempXpos, float tempYpos, float tempXspeed) { 
 +    c = tempC;
 +    xpos = tempXpos;
 +    ypos = tempYpos;
 +    xspeed = tempXspeed;
 +  }
 +
 +  void display() {
 +    stroke(0);
 +    fill(c);
 +    rectMode(CENTER);​
 +    rect(xpos,​ypos,​20,​10);​
 +  }
 +
 +  void drive() {
 +    xpos = xpos + xspeed;
 +    if (xpos > width) {
 +      xpos = 0;
 +    }
 +  }
 +}
 +
 +</​code>​
 +
 +<code java>
 +
 +// Credit: Neel
 +
 +int[] cheesesticks = {200, 40, 170, 50, 70, 60, 80, 90, 190, 150, 100, 110, 120, 140, 180, 130, 20, 160, 30, 10};
 +
 +int i = -1;
 +int j = 0;
 +int min;
 +
 +void setup() {
 +  size (250, 250);
 +}
 +
 +void draw() {
 +  ​
 +  background(200);​
 +  ​
 +  // only runs after j reaches 20  ​
 +  if ((j == 20) && (i < 19)) {
 + 
 +     i++;
 +     ​j=i+1;​
 +     min = cheesesticks[i];​
 +  }
 + 
 +  // runs as long as j is less than 20
 +  if (j < 20) {
 + 
 +    if (cheesesticks[j] < min){
 +      min = cheesesticks[j];​
 +      //swap
 +      int temp = cheesesticks[i];​
 +      cheesesticks[i] = cheesesticks[j];​
 +      cheesesticks[j] = temp;
 +    }
 +    j++;
 +  }
 +  ​
 +  fill(#​EA5353);​
 +
 +for (int i=0; i<20; i++)
 +  {
 +    rect(0, i*10,​cheesesticks[i],​ 5);
 +  }
 +
 +
 +
 +</​code>​
  
/soe/sherol/.html/teaching/data/pages/spcs/2015/day4.txt · Last modified: 2015/07/09 05:26 by ffpaladin