วันพฤหัสบดีที่ 18 กรกฎาคม พ.ศ. 2556

Express way





CODE
int a = 0;
int x = 125;
int y = 20;
int spacex = 1;
int spacey = 45;
int n = 6;
int n1 = 0;
void setup(){
  size(250,300);
  background(59,58,55);
}
void draw(){
  drawExpressway();
}
void drawExpressway(){
  while(n1<n){        //เมื่อตัวแปร n1<n เป็นจริง
-ให้พิจารณาที่เงื่อนไขif(n1<=0) และถ้าเงื่อนไขเป็นจริงจะสร้างถนนสีเทาและเส้นขอบข้างถนน 
-เมื่อพิจารณาเงื่อนไข if(n1<=0) หรือ if(n1<=0) เป็นเท็จแล้ว ให้แสดงสีเหลี่ยม(ขีดกลางถนน)
-ทำซ้ำไปจนกว่า n1<n เป็นเท็จ
    if(n1<=0){          //ถ้าค่าของตัวแปร n1 น้อยกว่าหรือเท่ากับ 0 ให้แสดงรูปสามเหลี่ยม(ถนน)และเส้นที่อยู่ข้างขอบสามเหลี่ยม(ถนน) 2 เส้น
          //ถนน
      noStroke();
      fill(160,159,158);
      triangle(-10,height,width/2,-150,width+10,height);
      strokeWeight(5);
      stroke(250);
      line(x-30,0,x-120,height);
      line(x+30,0,x+120,height);
    }
          //เส้นกลางถนน
    noStroke();
    fill(250);
    rect(x,y,7+a,12+a);          //ตำแหน่งสี่เหลี่ยมเปลี่ยนตามค่าตัวแปร x,y ขนาดเปลี่ยนตามค่าตัวแปร a
    a = a + 2;          //ช่วยให้เกิดการเปลี่ยนขนาด แต่ละครั้งของการทำซ้ำ
    x = x - spacex;          //ช่วยให้เกิดการเปลี่ยนตำแหน่งในแนวนอน แต่ละครั้งของการทำซ้ำ
    y = y + spacey;          //ช่วยให้เกิดการเปลี่ยนตำแหน่งในแนวตั้ง แต่ละครั้งของการทำซ้ำ
    spacey = spacey + 3;          //ช่วยให้เพิ่มค่าตัวแปร spacey แต่ละครั้งของการทำซ้ำ
    n1 = n1 + 1;           //เป็นการเพิ่มค่าของตัวแปร n1 ช่วยทำให้เกิดการทำซ้ำจนกว่าจะเป็นเท็จ
  }
}
จากโค้ด      ค่า n1 = 0 และ n = 6 เมื่อ while(n1<n){} จะทำให้เกิดเส้นสีต่างๆครั้งแรกและเกิดการทำซ้ำ 5 ครั้ง(เนื่องจาก n น้อยกว่า 6) รวมทั้งหมดจะมีเส้นสีต่างๆ สีละ 6 เส้น ซึ่งจะเริ่มทำตั้งแต่ 0 ถึง 5  
ตัวอย่าง ถ้าเปลี่ยนค่า n = 2 จะทำให้เกิดเส้นกลางถนน 2 เส้น ดังรูป



ไม่มีความคิดเห็น:

แสดงความคิดเห็น