~ ~ ก็วาดตัวหมากรุกไม่เป็น เอาหมากฮอส ไปแทนก่อนละกันนะ -O- ~
Draught board with pieces Processing.js code
int[][] ai={{1,2,3,4,5,6,7,8},{8,7,6,5,4,3,2,1}};
/*กำหนดค่าตัวแปรอาร์เรย์เป็นแบบสองมิติ ให้ค่าแรกเป็นอาร์เรย์ที่เริ่มด้วยเลขคี่
ส่วนอาร์เรย์ตัวที่สองให่เริ่มด้วยเลขคู่ สลับเลขคู่คี่ ไปเรื่อยๆให้มีขนาด 8 ตัว*/
int i = 0; //แประกาศและกำหนดค่าตัวแปร
int j = 0;
int count = 0;
int r = 30;
int x = r;
int y = r;
int q = 0;
size(300,300); //กำหนดขนาด
background(59,245,184); //ใส่สีพื้นหลัง
while(count<4){
//สร้างลูป โดยมีเงื่อนไขการวนลูปคือ ค่า count ต้องน้อยกว่า 4 เพื่อวนการอ่าน pararail array
while(i<ai.length){
//สร้างลูป ที่ให้ค่า i น้อยกว่าความยาวของอาร์เรย์ ai หรือก็คือให้ค่า i น้อยกว่า 2 เพื่อจะให้ได้วนอ่านค่าใน pararail array ทั้งสองค่า
while(j<ai[i].length){ //สร้างลูปอีกครั้ง โดยให้ค่า j น้อยกว่าความยาวของอาร์เรย์ ai[i] หรือให้ค่า j น้อยกว่า 8 เพราะเรามีค่าในอาร์เรย์ย่อยมี 8 ตัว
if(ai[i][j]%2==0){
/*เป็นเงื่อนไขที่จะสร้างตารางขาว-ดำ โดยส่วนนี้จะสร้างหลัก ที่ถ้า ai[i][j]
ค่า i เป็นบอกว่าเป็นค่าอาร์เรย์ตัวใดใน pararail array
ค่า j บอกว่าอยู่ที่ตำแหน่งในอาร์เรย์ย่อยนั้น เป็นตัวบอกหลัก
ให้ค่าที่กำหนด หารด้วย 2 แล้วเศษเป็น 0 หรือก็คือจำนวนคู่นั้นเอง ให้ทำตามคำสั่งต่อไปนี้
*/
fill(0); //ใส่สีดำในคำสั่งต่อไป
rect(x,y,r,r); //วาดสี่เลี่ยมกำหนดให้เริ่มที่ต่ำแหน่ง x,y ความกว้างและความยาว คือ r
if(q==0){ //เงื่อนไขที่ถ้าค่า q เท่ากับ 0 ให้ทำคำสั่งต่อไปนี้, เงื่อนไขนี้จะเป็นการสร้างตัวหมากฝ่ายแรก
fill(255,5,64); //กำหนดสีแดงให้คำสั่งต่อไป
ellipse(x+r/2,y+r/2,r/2,r/2); //วาดวงกลมแทนตัวหมากของฝ่านแรก ที่ ตำแหน่งตรงกลางช่องสี่เหลี่ยม รัศมี r/2
}
if(q==3){ //เงื่อนไขที่ถ้าค่า q เท่ากับ 3 ให้ทำคำสั่งต่อไปนี้, เงื่อนไขนี้จะเป็นการสร้างตัวหมากฝ่ายที่สอง
fill(255); //ใส่สีให้คำสั่งต่อไป
ellipse(x+r/2,y+r/2,r/2,r/2); //วาดวงกลมที่เป็นตัวหมากของฝ่ายที่สอง
}
}else{ //เงื่อนไขที่ถ้าไม่ใช่จำนวนคู่ (จำนวนคี่) ให้ทำต่อไปนี้
fill(255); //ใส่สีขาวให้คำสั่งต่อไป
rect(x,y,r,r); //วาดสี่เหลี่ยม
}
x = x+r; //ให้ค่า x เพิ่มขึ้น r หน่วย เพื่อจะวาดสี่เลี่ยมต่อไปที่ตำแหน่งใหม่ในแนวแกน x เป็นการสร้างหลัก
j = j+1; //เพิ่มค่า j แล้วกลับไปพิจาณาการวนลูป
}
y = y+r; //ให้ค่า y เพิ่มขึ้น r หน่วย เพื่อสร้างแถวต่อไป
x = r; //ให้ค่า x กลับเป็นค่าเริ่มต้นคือ x = r
j = 0; //รีเซ็ตค่า j ให้กลับเป็น 0 เพื่อเริ่มการพิจาณาตำแหน่งในตัวอาร์เรย์ย่อยใหม่
i = i+1; //เพิ่มค่า i จะเป็นการวนลูปนี้อีกครั้งโดยที่ค่า i เป็น 1 นั่งคือจะอ่านค่าที่ pararail array ตัวที่สอง
}
i = 0; //รีเซ็ตค่า i ให้กลับเป็น 0
q = q+1; //กำหนดค่า q = q+1 เพื่อการสร้างตัวหมาก
count = count+1; //ให้ count = count+1 แล้วกลับไปพิจารณาเงื่อนไขการวนลูปอีกครั้ง
/*เพราะในการวนลูป 1 ครั้ง จะให้แถวตารางออกมาสองแถว ถ้าวน 4 ครั้งก็จะได้ 8 แถว */
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น