public static void main(String[] args) {

		/**
		 * Atributo filas de tipo entero.
		 */
		int filas = 8;
		/**
		 * Atributo columnas de tipo entero.
		 */
		int columnas = 8;
		/**
		 * Atributo jugador2 de tipo string.
		 */
		String jugador1 = "Abel";
		/**
		 * Atributo jugador2 de tipo string.
		 */
		String jugador2 = "Caín";

		// Si he ejecutado el reversi con atributos y son 4
		if (args.length == 4) {
			jugador1 = args[0];
			jugador2 = args[1];
			filas = Integer.parseInt(args[2]);
			columnas = Integer.parseInt(args[3]);

			// Que las filas y las columnas sean m�s de 4 y siempre pares, sino
			// finaliza el reversi
			if (filas <= 4 || columnas <= 4 || (filas % 2 != 0)
					|| (columnas % 2 != 0)) {
				mostrarMensajeAyudaTablero();
				System.exit(0);
			}

			// Si le he ejecutado el reversi con menos de 4 argumentos que
			// termine
		} else if (args.length != 0) {
			mostrarMensajeAyudaArgumentos();
			System.exit(0);
		}

		// Creo una variable �rbitro para acceder a los m�todos de
		// �rbitroReversi
		arbitro = new ArbitroReversi(new Tablero(filas, columnas));
		arbitro.registrarJugador(jugador1);
		arbitro.registrarJugador(jugador2);

		// Mustra el tablero inicial
		mostrarTablero();

		// Sino ha acabado que pida fila y columna hasta que las coordenadas que
		// de el jugador sean correctas
		while (!arbitro.estaAcabado()) {
			mostrarTurno();
			int i = 0;
			int j = 0;
			boolean legal = false;
			while (!legal) {
				i = pedirFila();
				j = pedirColumna();
				if (arbitro.esMovimientoLegal(i, j)) {
					legal = true;
				} else {
					mostrarMensajeCoordenadas();
				}
			}

			// Llamada al m�todo jugar
			arbitro.jugar(i, j);

			// Muestra el tablero despu�s de la jugada
			mostrarTablero();
		}

		// Llamada al m�todo mostrar ganador cuando salga del while, que
		// significa que la partida ha acabado
		mostrarGanador(arbitro.consultarGanador());
	}