วันศุกร์ที่ 19 ตุลาคม พ.ศ. 2561

XO JAVA update [แยกฟังก์ชัน]

            นำเกม 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(); } }


ตัวอย่างจากการเล่นเกม


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

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