top of page

 

package alıştırmalar;

import java.util.*;

public class xox_Game {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

String strMatrix[][] = new String[3][3];

 

//ilk değer yükleme

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

strMatrix[i][j]= " "; 

}

}

 

for (int i = 0; i < 9; i++) { //9 tur

printTable(strMatrix); 

 

String player ="";

player = setPlayer(i); //sıra hangi oyuncuda?

 

int row,column;

System.out.print("Enter a row (1,2 or 3) for player " + player + ": ");

row = scanner.nextInt();

System.out.print("Enter a column (1,2 or 3) for player " + player + ": ");

column = scanner.nextInt();

 

boolean isVictory = false;

if (row >= 1 && row <=3 && column >= 1 && column <=3) {

if (strMatrix[row-1][column-1].equals(" ")) {

strMatrix[row-1][column-1] = player;

 

isVictory = controlTable(strMatrix); //oyun bitti mi kontrolü

if (isVictory) {

printTable(strMatrix);

System.out.println("player " + player + " won!");

return;

}

} else{

System.out.println("Row-column is fill");

i--; //tur--

}

} else{

System.out.println("Row-column is wrong value");

i--;

}

}

System.out.println("draw");

}

 

private static String setPlayer(int i) {

String player;

if (i % 2 == 1) {

player = "O";

} else {

player = "X";

}

return player;

}

 

private static boolean controlTable(String[][] strMatrix) {

//sütun kontrolü

boolean ret = false;

 

ret = checkColumn(strMatrix);

if (ret) return true;

 

//satır kontrolü

ret = checkRow(strMatrix);

if(ret) return true;

 

//Köşegen kontrolü

ret = checkDiagonal(strMatrix);

if(ret) return true;

 

return false;

}

 

private static boolean checkDiagonal(String[][] strMatrix) {

//köşegendeki değerler eşitse oyunu kazanmıştır.

//1. ve 2. köşegenleri kontrol eder.

String val00 = strMatrix[0][0];

String val11 = strMatrix[1][1];

String val22 = strMatrix[2][2];

String val02 = strMatrix[0][2];

String val20 = strMatrix[2][0];

 

if ((!val00.equals(" ")) && val00.equals(val11) && val11.equals(val22)) {

return true;

}

if ((!val02.equals(" ")) && val02.equals(val11) && val11.equals(val20)) {

return true;

}

return false;

}

 

private static boolean checkRow(String[][] strMatrix) {

for (int j = 0; j < 3; j++) { //j. satırdaki değerler eşitse oyunu kazanmıştır.

String row0 = strMatrix[0][j];

String row1 = strMatrix[1][j];

String row2 = strMatrix[2][j];

if ((!row0.equals(" ")) && row0.equals(row1) && row1.equals(row2)) {

return true;

}

}

return false;

}

 

private static boolean checkColumn(String[][] strMatrix) {

for (int j = 0; j < 3; j++) { //j. sütundaki değerler eşitse oyunu kazanmıştır.

String column0 = strMatrix[j][0];

String column1 = strMatrix[j][1];

String column2 = strMatrix[j][2];

if ((!column0.equals(" ")) && column0.equals(column1) && column1.equals(column2)) {

return true;

}

}

return false;

}

 

private static void printTable(String[][] strMatrix) {

for (int i = 0; i < 3; i++) {

System.out.println("-------------");

System.out.print("|");

for (int j = 0; j < 3; j++) {

System.out.print(" ");

System.out.print(strMatrix[i][j]);

System.out.print(" ");

System.out.print("|");

}

System.out.println("");

}

System.out.println("-------------");

}

}

 

 

bottom of page