boolean[] A = {true, false,false,true}; // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ A boolean[] B = { true, true, false,false}; // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ B boolean[] cal = new boolean[4]; // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ cal เก็บค่าที่คำนวณได้
int[]minus = new int[5]; // กำหนดตัวแปรชนิด boolean ประเภท array ชื่อ minus ใช้เก็บค่าที่จะใช้แสดง
int x = 45; // กำหนดตัวแปรชนิด int ชื่อ x เพื่อกำหนดจุดที่วาดวงกลมวงแรก
int i = 0; // กำหนดตัวแปรชนิด int ชื่อ i เพื่อเรียกใช้ค่าใน array ตำแหน่ง i นั้นๆ
int j = 1; // กำหนดตัวแปรชนิด int ชื่อ j ใช้ในการทดเลขจากการคำนวณ
void setup() {
size(200,200); // กำหนดขนาดของ screen
background(195); // กำหนดสีของ screen เป็นสีเทา
i = A.length - 1; // ให้ ค่า i เท่ากับความยาวของ A -1
while (i > 0) { // กำหนดเงื่อนไขการวนลูป ถ้า i > 0
if (A[i] == B[i]) { // กำหนดเงื่อนไข ถ้า A และ B ที่ตำแหน่ง i มีค่าเท่ากัน
cal[i] = false; // ให้ cal ที่ตำแหน่ง i เป็น false
}
else if (A[i]== false && B[i] == true) { // กำหนดเงื่อนไข ถ้า A ที่ตำแหน่ง i มีค่าเป็น false และ B ตำแหน่ง i มีค่าเป็น true
cal[i] = true; // ให้ cal ที่ตำแหน่ง i เป็น true
A[i-1] =!A[i-1]; // ให้ A[i - 1] มีค่าตรงข้าม
if(A[0] == false && A[0] == true){ // กำหนดเงื่อนไข ถ้า A ที่ตำแหน่ง 0 มีค่าเป็น false
และ B ตำแหน่ง 0 มีค่าเป็น true
cal[0] = true; // ให้ cal ที่ตำแหน่ง 0 เป็น true}
if (A[i-1] == true) { // กำหนดเงื่อนไข ถ้าค่าตำแหน่งถัดจาก i เป็น true
j = 1; // ให้ j เป็น 1
while (A[i - j] == true) { // กำหนดเงื่อนไขการวนลูป ถ้า A ตำแหน่ง i - j เป็น true
j = j + 1; // ให้ค่า j เพิ่มขึ้นเรื่อยๆทีละ 1
if(A[0] == true) { // กำหนดเงื่อนไข ถ้า A ตำแหน่ง 0 เป็น true
break; // ให้หยุด
}
A[i - j] = !A[i - j]; // ให้ A[i - j] มีค่าตรงข้าม
}
}
}
else { // ถ้าค่าตำแหน่งถัดจาก i ไม่เป็น true
cal[i] = true; // ให้ cal ตำแหน่ง i เป็น true
}
i = i - 1; // ให้ i ลดลงเรื่อยๆที่ละ 1
}
i = 0; // ให้ i เป็น 0 เมื่อออกจากลูป
while (i < A.length){ // กำหนดเงื่อนไขในการวนลูป ถ้า i < A.length
if (cal[i] == true) { // กำหนดเงื่อนไข ถ้า cal ตำแหน่ง i เป็น true
minus[i] = 1; // ให้ minus ที่ตำแหน่ง i เป็น 1
fill(0,128,128); // กำหนดสีให้กับวงกลม เป็นสีเขียว
ellipse(x,120,30,30); // วาดวงกลม โดยเริ่มที่จุด x
x = x + 30; // เพิ่มค่า x ขึ้นเรื่อยๆทีละ 30
}
if (cal[i] == false) { // กำหนดเงื่อนไข ถ้า cal ตำแหน่ง i เป็น false
minus[i] = 0; // ให้ minus ที่ตำแหน่ง i เป็น 0
fill(255); // กำหนดสีให้กับวงกลม เป็นสีขาว
ellipse(x,120,30,30); // วาดวงกลม โดยเริ่มที่จุด x
x = x + 30; // เพิ่มค่า x ขึ้นเรื่อยๆทีละ 30
}
i = i + 1; // เพิ่มค่า i ขึ้นเรื่อยๆทีละ 1
}
fill(0); // กำหนดสีตัวอักษร เป็นสีดำ
textFont(createFont("Cordia New",26)); // กำหนดฟร้อนต์ตัวอักษรเป็น Cordia New มีขนาด 26
text("Minus =" +" "+ minus[0] + minus[1] + minus[2] + minus[3],45,70); // แสดงค่าของ minus[0] ,minus[1],minus[2] และ minus[3]
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น