9 กันยายน 2556

T^T Binary display T^T

T^T Binary display T^T

~  ~ ฮือๆๆ  ~  ~



Binary Processing.js code

int[] ai = {1,0,1};  //ประกาศและกำหนดค่าอะเรย์ ชื่อ ai
int[] bi = {1,1,0};  //ประกาศและกำหนดค่าอะเรย์ ชื่อ bi
int[] c = new int[ai.length];  //ประกาศค่าอะเรย์ความยาวเท่ากับความยาว ai เอาไว้เป็นตัวเก็บเลขทด
int[] ab = new int[ai.length+1];  //ประกาศค่าอะเรย์ความยาวเท่ากับความยาว ai เป็นตัวเก็บผลลัพธ์
void setup(){
  size(300,300);
  background(20,255,186);
  int i = ai.length-1;
  int j = ab.length-1;
  while(i>=0){
    if(ai[i]==1&&bi[i]==1){  //เงื่อนไขที่ถ้า ai = 1 และ bi = 1
      c[0]=1;  //c[0] เก็บเลขทดเป็น 1 เพราะเลขฐานสอง 1 + 1 ได้ผลลัพธ์เท่ากับ 0 ทด 1
      ab[j]=0; 
      if(c[1]==1){  //แล้วถ้าผลลัพธ์ก่อนหน้ามีตัวทด 1 ให้ ผลลัพธ์ที่ได้นี้เท่ากับ 1
        ab[j]=1;
      }else{  //ถ้าผลลัพธ์ก่อนหน้าไม่มีตัวทด ให้ผลลัพธ์ที่ได้นี้เท่ากับ 0
        ab[j]=0;
      }
      c[1]=c[0];  //ให้ค่า c[1] = c[0] คือ ให้รีเซ็ตค่า c[1] เท่ากับ c[0]
    }else if(ai[i]==0&&bi[i]==0){  //เงื่อนไขที่ถ้า ai = 0 และ bi = 0
      c[0]=0;  //c[0] เก็บเลขทดเป็น 0 เพราะเลขฐานสอง 0 + 0 ได้ผลลัพธ์เท่ากับ 0 ทด 0
      ab[j]=0;
      if(c[1]==1){  //แล้วถ้าผลลัพธ์ก่อนหน้ามีตัวทด 1 ให้ ผลลัพธ์ที่ได้นี้เท่ากับ 1
        ab[j]=1; 
      }else{
        ab[j]=0;  //ถ้าผลลัพธ์ก่อนหน้าไม่มีตัวทด ให้ผลลัพธ์ที่ได้นี้เท่ากับ 0
      }
      c[1]=c[0];  //ให้ค่า c[1] = c[0] คือ ให้รีเซ็ตค่า c[1] เท่ากับ c[0]
    }else{  //เงื่อนไขที่ถ้าไม่ใช่ทั้งสองอย่างข้างต้น
      c[0]=0;  //c[0] เก็บเลขทดเป็น 0 เพราะเลขฐานสอง 0+1 หรือ 1+0 ได้ผลลัพธ์เท่ากับ 1 ทด 0
      ab[j]=1;
      if(c[1]==1){  //แล้วถ้าผลลัพธ์ก่อนหน้ามีตัวทด 1 ให้ ผลลัพธ์ที่ได้นี้เท่ากับ 0 ทด 1
        ab[j]=0;
        c[0]=1;
      }else{
        ab[j]=1;  //ถ้าผลลัพธ์ก่อนหน้าไม่มีตัวทด ให้ผลลัพธ์ที่ได้นี้เท่ากับ 1
      }
      c[1]=c[0];  //ให้ค่า c[1] = c[0] คือ ให้รีเซ็ตค่า c[1] เท่ากับ c[0]
    }
  i = i-1;
  j = j-1;
  }
  if(c[1]==1){ //ถ้าบวกกันแล้วเหลือตัวทด 1 ให้ ab เก็บค่า 1 สร้างหลักใหม่
      ab[j]=1;
  }
  j = 0; //ให้ค่า j = 0 เริ่มที่หลักหน้าสุด
  int x = 35;  //ประกาศและกำหนดค่า x
  while(j<ab.length){  //สร้างลูป ให้ค่า j น้อยกว่า ค่าความยาว ab
    if(ab[j]==1){  //ถ้าค่า ab เป็น 1 ให้ลงสีดำ
      fill(0);
    }else{  //ถ้าไม่ใช่ ให้ลงสีขาว
      fill(255);
    }
      ellipse(x+40,150,50,50);  //วาดวงกลม
      print(ab[j]);
      x = x+50;  //เพิ่มค่า x ภาพต่อไปจะเลื่อนไปทางขวา
      j = j+1;  //เพิ่มค่า j
  }
}

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

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