20 สิงหาคม 2556

>.< Draught board with pieces >.<


~ ~ ก็วาดตัวหมากรุกไม่เป็น เอาหมากฮอส ไปแทนก่อนละกันนะ -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 แถว */
}

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

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