الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ في كود لعبة Tic Tac Toe

مغلق
بدأه azy8000 في 4 ديسمبر 2007 · 1 رد · 707 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا كود خاص بلعبة اكس او

لكن فيه خطا ولا قدرت احدد الخطأ

ياليت احد يساعدني فيه

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();


	}
  }
#2

شباب غريبه مافيه ولا رد

هذا الموضوع مغلق.

مواضيع مشابهة