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:55]
ffpaladin
Line 35: Line 35:
  
 <code java> <code java>
 +
 +// Selection Sort
  
  
Line 85: Line 87:
   - 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