OX Game
นี่เป็นการสร้างกระดาน OX ในการเล่นตามปกติ เราสามารถกำหนดค่าอะไรก็ได้ระหว่าง 0 และ 1 ซึ่งผมใช้แทน O และ X ตามลำดับ ใน Array ให้มีรูปแบบหลายแบบ สำหรับในการออกแบบครั้งนี้ผมใช้ Array เพียงชุดเดียว โดยส่วนใหญ่ฟังก์ชั่นเหล่านี้ ผมกำหนดให้อยู่ใน setup รวมกันเพียงชุดเดียว เพราะเป็นการรวมข้อมูลต่างๆ และการเรียกใช้ในที่เดียว อันดับแรก ควรกำหนดตัวแปรต่างๆ เพื่อการเก็บค่า และการนับ รวมทั้ง Array ที่จะนำมาใช้แทน O และ X ตัวแปรทั้งหมดควรเป็น Global Variable ก่อนวาด OX ควรมีการสร้างเส้นตารางสำหรับการแบ่งพื้นที่ให้มีขนาดเท่ากัน เป็นกระดาน ถ้าเป็นไปได้ หลังจากที่เราวาด OX เสร็จแล้ว ควรมีการกำหนดเพิ่มเติมสีสันให้กับสิ่งต่างๆ บนพื้นที่ เพื่อให้สังเกตได้ง่ายขึ้น
Processing Code
int i = 0; /*กำหนดตัวแปรชนิด Global Variable เพื่อให้แทนค่าใน Array พร้อมทั้งเป็นคำสั่งในการนับ และการเพิ่ม*/int j = 0;
int [][] OX = {{0, 0, 1}, {1, 0, 1}, {0, 1, 0}}; /*กำหนด Array 2 มิติ โดยให้ตัวเลขแต่ละตัวออกมาแทนค่าได้ตามเงื่อนไขในการวนลูปที่เรากำหนดขึ้น ในนี้ ผมใช้ 0 แทน O ส่วน 1 แทน X*/
int x = 50; /*กำหนดตัวแปรที่ใช้ในการแทนค่าฟังก์ชั่นต่างๆ ในฟังก์ชั่นทั้งหมด*/
int y = 50;
void setup() { /*ฟังก์ชั่นหลักในการตั้งค่าโดยไม่มีการวนซ้ำ*/
size(300, 300); /*กำหนดความกว้างและสูงของพื้นที่ หรือ size(width, height)*/
stroke(#1D9318); //ฟังก์ชั่นที่ใช้ในการเติมสีให้กับเส้น โดยเติมตามค่าของแม่สี หรือเครื่องหมาย # โดยสีที่ใส่ไปนี้คือสีเขียว
strokeWeight(10); //ฟังก์ชั่นที่ใช้ในการกำหนดน้ำหนักของเส้นโดยใส่ตัวเลขลงไปในวงเล็บ
fill(#FFEF95); //ฟังก์ชั่นที่ใช้ในการเติมสีให้กับพื้นหลัง หรือรูปทรงต่างๆ โดยเติมตามค่าของแม่สี หรือเครื่องหมาย # โดยสีที่ใส่ไปนี้คือสีเหลืองอ่อน
rect(0, 0, 299, 299); /*ฟังก์ชั่นที่ใช้ในการสร้างรูปสี่เหลี่ยม โดยกำหนดค่าตาม (x, y, width, height)*/
while (i < OX.length) { /*ในกรณีที่ j น้อยกว่าความยาวของ OX หรือ 3 จึงจะทำการเข้าวนลูปได้*/
while (j < OX[i].length) { /*ในกรณีที่ j น้อยกว่าความยาวของ OX หรือ 3 จึงจะทำการเข้าวนลูปได้*/
if (OX [i][j] == 0) { /*เงื่อนไขที่ว่า OX [i][j] มีค่าเท่ากับ 0 หรือไม่ ถ้าใช่จะสร้างวงกลมตามที่กำหนดด้วยฟังก์ชั่นวาดวงรี หรือ ellipse(x, y, width, height)*/
stroke(#0A57F7); //กำหนดสีในเส้น สีที่ใส่คือสีน้ำเงิน
ellipse(x, y, 70, 70);
}
else { /*ถ้าเงื่อนไขข้างบนไม่เป็นจริง จะวาดเส้นที่กำหนดด้วยฟังก์ชั่น line(x1, y1, x2, y2)*/
stroke(#F0181C); //ส่วนนี้วาดรูปกากบาท โดยใส่สีแดง
line(x+30, y-30, x-30, y+30);
line(x-30, y-30, x+30, y+30);
stroke(#1D9318); //ส่วนนี้วาดเส้นแบ่งพื้นที่ ด้วยสีเขียว
line(x+50, j, x+50, x+250);
line(j, y+50, x+250, y+50);
}
x = x+100; /*กำหนดให้ค่าของ x มีค่าเพิ่มขึ้นทีละ 100 ไปเรื่อยๆ จนกว่าจะจบเงื่อนไขนี้*/
j = j+1; /*กำหนดฟังก์ชั่นในการนับ*/
}
j = 0; /*ถ้าผ่านเงื่อนไขเหล่านี้มาได้ ค่า j จะเท่ากับ 0*/
x = 50; /*ถ้าผ่านเงื่อนไขเหล่านี้มาได้ ค่า x จะเท่ากับ 50*/
y = y+100; /*กำหนดให้ค่าของ y เพื่มขึ้นทีละ 100 จนกว่าจะจบการวนลูป*/
i = i+1; /*กำหยดฟังก์ชั่นในการนับอีกครั้ง*/
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น