นำเกม XO ที่ทำไว้มาทำเป็น class โดยมี attibute คือ row และ column ซึ่งอยู่ใน constructor และ มีฟังก์ชันการทำงาน 3 ส่วนคือ ส่วนที่แสดงบอร์ด ส่วนของการใส่ X หรือ O ลงในบอร์ด และ ส่วนของการตรวจสอบการแพ้ชนะ
------- กำหนดตัวแปรต่าง ๆ --------
import java.util.Scanner;
public class myGame {
private int row;
private int col;
boolean win = true ;
private char board[][];
private char player = 'X';
------- Constructor --------
public myGame (int row,int col) {
this.row = row;
this.col = col;
this.board= new char[this.row][this.col];
}
------- แสดงบอร์ด --------
public void display() {
// create and show board
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
System.out.print("\t" + board[i][j]);
}
System.out.println();
}
}
------- ใส่ X หรือ O ลงในบอร์ด --------
public void inputXO() {
Scanner inPlayer = new Scanner(System.in);
// player input
System.out.print( player + " Enter : ");
int py = inPlayer.nextInt();
int k = 9;
if (player=='X') {
player = 'O';
}
else {
player = 'X';
}
if(py>0 && py<4)k = 2;
else if(py<7)k = 1;
else if(py<10)k = 0;
board[k][(py-1)%3] = player;
}
------- ตรวจสอบเงื่อนไขการแพ้ชนะ --------
public void checkwin() {
//check row
for (int i=0; i<=2;i++) {
if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && (board[i][0] == 'X' || board[i][0] == 'O')) {
System.out.println( player + " Win");
}
//check column
else if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && (board[0][i] == 'X' || board[0][i] == 'O')) {
System.out.println( player + " Win");
}
} //check diagonal
if ((board[0][0] == board[1][1] && board[1][1] == board[2][2]) && (board[1][1] == 'X' || board[1][1] == 'O')) {
System.out.println( player + " Win");
}
if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && (board[0][2] == 'X' || board[0][2] == 'O')) {
System.out.println( player + " Win");
}
------- เรียกใช้ฟังก์ชัน --------
public void start() {
System.out.println("XO Game");
System.out.println("Start game with O player ");
this.board= new char[this.row][this.col];
display();
inputXO();
}
}
จากนั้น นำ class XOGame ไปเรียกใช้ใน class สำหรับ run
public class MAIN {
public static void main(String[]args){
myGame xo = new myGame(3,3);
xo.start();
}
}
ตัวอย่างจากการเล่นเกม
ไม่มีความคิดเห็น:
แสดงความคิดเห็น