วันอังคารที่ 24 กันยายน พ.ศ. 2556
CHESS
int x = 0; //กำหนดตัวแปรชนิด Global Variable เพื่อให้แทนค่าได้ทุกฟังก์ชั่น ตัวนี้เป็นค่าในแกน X นอกจากนี้ตัวแปรทุกตัวถูกกำหนดให้เป็นจำนวนเต็มด้วยฟังก์ชั่นที่นำหน้า int
int y = 0; //กำหนดค่าในแกน Y
int blackwhite = 0; //ค่ากำหนดสีของตารางหมากรุก
int [][] chess= { //ตัวกำหนดว่า จะวาดอะไรบนกระดาน
{
1, 2, 3, 4, 5, 3, 2, 1
} //กำหนดตำแหน่งของเรือ ม้า บิชอป ควีน ขุน บิชอป ม้า และเรือ ตามลำดับ ทั้งหมด 8 ตัว ฝ่ายสีดำ
, {
6, 6, 6, 6, 6, 6, 6, 6
} //กำหนดตำแหน่งของเบี้ยทั้ง 8 ตัวตามลำดับบนแถวเดียวกัน ฝ่ายสีดำ
, {
0, 0, 0, 0, 0, 0, 0, 0
} //พื้นที่ว่างที่มีลายแถบสี
, {
0, 0, 0, 0, 0, 0, 0, 0
} //พื้นที่ว่างที่มีลายแถบสี
, {
0, 0, 0, 0, 0, 0, 0, 0
} //พื้นที่ว่างที่มีลายแถบสี
, {
0, 0, 0, 0, 0, 0, 0, 0
} //พื้นที่ว่างที่มีลายแถบสี
, {
6, 6, 6, 6, 6, 6, 6, 6
} //กำหนดตำแหน่งของเบี้ยทั้ง 8 ตัวตามลำดับบนแถวเดียวกัน ฝ่ายสีขาว
, {
1, 2, 3, 4, 5, 3, 2, 1
} //กำหนดตำแหน่งของเรือ ม้า บิชอป ควีน ขุน บิชอป ม้า และเรือ ตามลำดับ ทั้งหมด 8 ตัว ฝ่ายสีขาว
};
int i = 0; //ตัวนับ Array
int j = 0; //ตัวนับ Array
void setup() { //ฟังก์ชั่นหลักที่ใช้ในการกำหนดเรียกใช้งานฟังก์ชั่นต่างๆ
size(400, 400); //กำหนด canvas 400x400
noStroke(); //ฟังก์ชั่นหลักที่ใช้ในการระบุว่า ไม่มีขอบ
//การวาดตาราง
while (y <= 400) { //กำหนดเงื่อนไขเป็นลูป ถ้าเงื่อนไขภายในเป็นจริง จึงจะเกิดลูป
while (x <= 400) {
if (blackwhite == 0) { //กำหนดเงื่อนไขภายในวงเล็บ ถ้าเป็นจริง จะเกิดผล
fill(#808080); //เติมสีเทา
blackwhite = 1;
}
else if (blackwhite == 1) { //กำหนดเงื่อนไขอีกกรณีหนึ่ง
fill(#DCDCDC); //เติมสีเทาอ่อน
blackwhite = 0;
}
rect(x, y, 50, 50); //ฟังก์ชั่นที่ใช้ในการวาดรูปสี่เหลี่ยม หรือ rect(x, y, width, height)
x = x+50; //ค่า x มีค่าเพิ่มขึ้นทีละ 50
}
x = 0;
y = y+50;
}
x = 25; //ค่าในแกน X ของตัวหมาก
y = 25; //ค่าในแกน Y ของตัวหมาก
//การสร้างตัวหมากรุก
while(i < chess.length) { //กรณีที่ i มีค่าน้อยกว่าความยาวของ Array ชื่อ chess
while(j < chess[i].length) { //การกำหนดตัวหมาก
if(chess[i][j] == 1) {
//วาดเรือ
rook(x, y);
} else if(chess[i][j] == 2) {
//วาดม้า
knight(x, y);
} else if(chess[i][j] == 3) {
//วามบิชอป
bishop(x, y);
} else if(chess[i][j] == 4) {
//วาดควีน
queen(x, y);
} else if(chess[i][j] == 5) {
//วาดขุน
king(x, y);
} else if(chess[i][j] == 6) {
//วาดเบี้ย
pawn(x, y);
}
x = x+50; //เลื่อนตำแหน่งตัวหมาก
j = j+1;
}
j = 0;
x = 25;
y = y+50;
i = i+1;
}
}
void rook(int x, int y) { //ฟังก์ชั่นที่ใช้ในการสร้างเรือ
noStroke();
if(y < 300) {
fill(#000000); //เติมสีดำ
} else if(y > 300) {
fill(#FFFFFF); //เติมสีขาว
}
int h = x-15;
int k = y-20;
rect(h, k+5, 6, 10);
rect(h+12, k+5, 6, 10);
rect(h+24, k+5, 6, 10);
rect(h, k+10, 30, 5);
rect(h+7, k+10, 16, 30);
rect(h, k+35, 30, 5);
}
void knight(int x, int y){ //ฟังก์ชั่นที่ใช้ในการวาดม้า
noStroke();
if(y < 300){
fill(#000000);
} else if(y > 300){
fill(#FFFFFF);
}
int h = x-13;
int k = y-8;
rect(h, k, 18, 10);
triangle(h, k, h+20, k, h+15, k-10); //ฟังก์ชั่นที่ใช้ในการวาดรูปสามเหลี่ยม หรือ triangle(x1, y1, x2, y2, x3, y3)
triangle(h+20, k-10, h+5, k+25, h+25, k+25);
triangle(h+15, k-10, h+15, k, h+25, k-10);
if(y < 200) {
fill(#FFFFFF);
} else if(y > 200){
fill(#000000);
}
ellipse(h+13, k, 3, 3);
}
void bishop(int x, int y) { //ฟังก์ชั่นที่ใช้ในการวาดบิชอป
noStroke();
if(y < 300) {
fill(#000000);
} else if(y > 300){
fill(#FFFFFF);
}
int h = x;
int k = y-15;
triangle(h, k, h+15, k+13, h-15, k+13);
ellipse(h, k+15, 30, 15); //ฟังก์ชั่นที่ใช้ในการวาดวงรี หรือ ellipse(x, y, width, height)
ellipse(h, k, 5, 5);
triangle(h, k, h-10, k+30, h+10, k+30);
stroke(#FFFFFF); //ฟังก์ชั่นที่ใช้ในการเติมสีในเส้น ใช้แบบเดียวกับฟังก์ชั่น fill() สีที่ใส่นี้คือ สีขาว
if(y < 200) {
stroke(#FFFFFF);
} else if(y > 300) {
stroke(#000000);
}
strokeWeight(3); //ฟังก์ชั่นที่ใช้ในการเพิ่มความหนาของเส้นของสิ่งต่างๆ
line(h, k+8, h, k+16); //ฟังก์ชั่นที่ใช้ในการวาดเส้น หรือ line(x1, y1, x2, y2)
line(h-4, k+12, h+4, k+12);
}
void queen(int x, int y) { //ฟังก์ชั่นที่ใช้ในการวาดควีน
noStroke();
if(y < 300){
fill(#CC00FF);
} else if(y > 300){
fill(#FFFFFF);
}
int h = x-13;
int k = y+5;
rect(h, k, 26, 10);
triangle(h, k+10, h+5, k, h-3, k-13);
triangle(h+5, k, h+13, k, h+8, k-15);
triangle(h+13, k, h+21, k, h+19, k-15);
triangle(h+26, k+10, h+21, k, h+29, k-13);
ellipse(h-3, k-13, 5, 5);
ellipse(h+8, k-15, 5, 5);
ellipse(h+19, k-15, 5, 5);
ellipse(h+29, k-13, 5, 5);
}
void king(int x, int y) { //ฟังก์ชั่นที่ใช้ในการวาดขุน
noStroke();
if(y < 300){
fill(#000000);
} else if(y > 300){
fill(#FFFFFF);
}
int h = x-14;
int k=y;
rect(h, k, 27, 13);
triangle(h, k, h, k-13, h+9, k);
triangle(h+9, k, h+14, k-13, h+18, k);
triangle(h+18, k, h+27, k, h+27, k-13);
if(y < 300) {
fill(#FFFFFF);
} else if(y > 300) {
fill(#000000);
}
ellipse(h+5, k+5, 4, 4);
ellipse(h+14, k+5, 4, 4);
ellipse(h+22, k+5, 4, 4);
strokeWeight(4);
if(y < 300) {
stroke(#000000);
} else if(y > 300) {
stroke(#FFFFFF);
}
line(h+14, k-10, h+14, k-18);
line(h+11, k-14, h+16, k-14);
}
void pawn(int x, int y) { //ฟังก์ชั่นที่ใช้ในการวาดเบี้ย
noStroke();
if(y < 300) {
fill(#000000);
} else if(y > 300) {
fill(#FFFFFF);
}
int h = x;
int k = y-8;
ellipse(h, k+8, 35, 35);
fill(#000000);
ellipse(h, k+8, 25, 25);
fill(#FFFFFF);
ellipse(h, k+8, 15, 15);
//triangle(h, k, h-20, k+50, h+20, k+50);
}
ป้ายกำกับ:
Lap6
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น