هذا كود خاص بلعبة اكس او
لكن فيه خطا ولا قدرت احدد الخطأ
ياليت احد يساعدني فيه
public class TicTacToe {
private char[][] board;
private boolean isCircleTurn;
public TicTacToe(int size)
{
if (size <=3)
size = 3;
for (int h = 0; h <= size; h++)
{
for (int v = 0; v <= size; v++) {
board[h][v] = 'U';
board = new char[size][size];
}
}
isCircleTurn = true;
}
public void addMove(int row, int col)
{
if(row > 1 && col > 1 && row <= board.length && col <= board.length)
{
if(isCircleTurn)
{
board[--row][--col] = 'O';
isCircleTurn = true;
}
else
{
board[--row][--col] = 'X';
isCircleTurn = false;
}
}
}
public void displayBoard()
{
for (int h = 1; h <= board.length + 1; h++)
{
System.out.println(" ");
for (int v = 1; v <= board.length + 1; v++) {
System.out.print(board[h][v]);
};
}
}
public boolean isCircleTurn()
{
if(isCircleTurn)
{
return(true);
}
return(false);
}
public int isThereAWinner()
{
char check = 'O';
int winner = +1;
int count = 0;
int y = 0;
//check for unfinished game
if (winner == 1)
{
for (int h = 0; h <= board.length - 1; h++)
for (int v = 0; v<= board.length - 1; v++)
check = board[h][v];
if (check == 'U')
winner = 1;
else
{
/* //check O diag L - R
for (int o = 0; o <= board.length - 1; o++) {
check = board[o][o];
if (check == 'O')
count++;
}
if (count >= board.length) {
winner = 1;
count = 0;
}
//check 0 diag R - L
if (winner == -1) {
for (int o = board.length - 1; o >= 0; o--) {
y = 0;
check = board[o][y];
y++;
if (check == 'O')
count++;
}
if (count >= board.length) {
winner = 1;
count = 0;
}
}
//check O horiz
if (winner == -1) {
for (int o = 0; o <= board.length - 1; o++) {
count = 0;
for (y = 0; y <= board.length - 1; y++) {
check = board[o][y];
if (check == 'O')
count++;
if (count >= board.length) {
winner = 1;
count = 0;
o = board.length - 1;
y = board.length - 1;
}
}
;
}
}
//check O vert
if (winner == -1) {
for (int o = 0; o <= board.length - 1; o++) {
count = 0;
for (y = 0; y <= board.length - 1; y++) {
check = board[y][o];
if (check == 'O')
count++;
if (count >= board.length) {
winner = 1;
count = 0;
o = board.length - 1;
y = board.length - 1;
}
}
;
}
}
//check X diag L - R
if (winner == -1) {
for (int o = 0; o <= board.length - 1; o++) {
check = board[o][o];
if (check == 'X')
count++;
}
if (count >= board.length) {
winner = 2;
count = 0;
}
}
//check X diag R - L
if (winner == -1) {
for (int o = board.length - 1; o >= 0; o--) {
y = 0;
check = board[o][y];
y++;
if (check == 'X')
count++;
}
if (count >= board.length) {
winner = 2;
count = 0;
}
}
//check X horiz
if (winner == -1) {
for (int o = 0; o <= board.length - 1; o++) {
count = 0;
for (y = 0; y <= board.length - 1; y++) {
check = board[o][y];
if (check == 'X')
count++;
if (count >= board.length) {
winner = 2;
count = 0;
o = board.length - 1;
y = board.length - 1;
}
};
}
}
//check X vert
if (winner == -1) {
for (int o = 0; o <= board.length - 1; o++) {
count = 0;
for (y = 0; y <= board.length - 1; y++) {
check = board[y][o];
if (check == 'X')
count++;
if (count >= board.length) {
winner = 2;
count = 0;
o = board.length - 1;
y = board.length - 1;
}
};
}
}*/
//check for tie game
if (winner == -1) {
count = 0;
for (int h = 0; h <= board.length - 1; h++)
for (int v = 0; v <= board.length - 1; v++)
check = board[h][v];
if (check == 'U')
count++;
if (count >= 1)
winner = 0;
}
}
}
return winner;
}
public void resetGame()
{
int size = board.length;
for (int h = 0; h <= size; h++)
{
for (int v = 0; v <= size; v++) {
board[h][v] = 'U';
}
}
isCircleTurn = true;
}
}وهذا الدرايفر
واعتقد انه المشكله فيه
import java.io.*;
import java.text.NumberFormat;
public class TicTacToeDriver {
public static void main (String[] args) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader (System.in));
TicTacToe s1;
int size;
boolean playagain = false;
System.out.print("Enter size of board: ");
size = Integer.parseInt(in.readLine());
s1 = new TicTacToe(size);
s1.displayBoard();
}
}