Java - Ayuda, me pueden ayudar convirtiendo este código que esta en leguaje java a lenguaje c++ por favor

 
Vista:
sin imagen de perfil

Ayuda, me pueden ayudar convirtiendo este código que esta en leguaje java a lenguaje c++ por favor

Publicado por Steve (1 intervención) el 21/01/2022 22:18:00
import java.util.Scanner;
import java.util.Random;

public class Caballo
{ // Abre clase Caballo
private int x = 1; // El caballo inicia en la casilla superior izquierda
private int y = 1;
private int tamano = 8; // El arreglo es de ocho x ocho
private int contador = 1; // Esta variable lleva la cuenta de las casillas
// recorridas
int ciclos = 0; // Esta variable cuenta los ciclos que se inten
// tan antes de determinar que ya no hay lugares
// a los cuales ir
int intentos_fallidos = 0; // Esta variable cuenta cuantos ciclos se inte
//tan antes de obtener el que pidio el usuario para 64 pueden ser varios
// millones

Scanner entrada = new Scanner(System.in);

public void Recibe()
{ // Abre Recibe
Random aleatorio = new Random();

int Arreglo[][] = new int[tamano + 1][tamano +1];
// Se define el arreglo de 9*9 para evitar el 0
Arreglo[1][1] = 1;
int dado1;
int dado2;
int casillas_requeridas = 0;

System.out.println("\nCuantas casillas quiere que recorra por lo menos?");
System.out.printf("\nAdvertencia: Si pide mas de %d el programa no terminara nunca:\n", tamano*tamano);
casillas_requeridas = entrada.nextInt();

// Debido a que se usara la fuerza bruta de la computacion para encontrar un
// recorrido completo se anade este while

while ( contador < casillas_requeridas )
{
intentos_fallidos++; // Se incrementa cada que inicia un intento
contador = 1; // Dado que ya se ha colocado al caballo en (1,1), se
// inicia el contador en 1
int ciclos = 0; // Se inicia con 0 ciclos o lanzamientos de dados infructuosos
// Cada vez que se aborta un intento han de limipiarse las casillas, con el siguiente
//par de ciclos se establecen a 0 nuevamente.

for ( int s = 0; s <= tamano; s++ )
{ // Abre for
for ( int t = 0; t <= tamano; t++ )
Arreglo[s][t] = 0;
} // cierra for

//Se ha de colocar el caballo en la esquina superior izquierda cada vez
// desde luego se puede poner en cualquier parte
x = 1;
y = 1;

Arreglo[1][1] = 1;
// Mientras no se encuentre un lugar para poner al caballo

while ( 1000 != ciclos)
// Este ciclo while basicamente hace el PASO 3 del algoritmo
{ // Abre while
ciclos++;
dado1 = 1 + aleatorio.nextInt(8);
dado2 = 1 + aleatorio.nextInt(8);

if ( Math.abs(Math.abs(x) - Math.abs(dado1)) == 2)
{ // Abre if
if ( Math.abs(Math.abs(y) - Math.abs(dado2)) == 1 )

if ( 0 == Arreglo[dado1][dado2])
{ // Abre if
Arreglo[dado1][dado2] = ++contador;
x = dado1;
y = dado2;
ciclos = 0;
} // Cierra if
} //Cierra if


if ( Math.abs(Math.abs(x) - Math.abs(dado1)) == 1)
{ // abre if
if ( Math.abs(Math.abs(y) - Math.abs(dado2)) == 2 )
if ( 0 == Arreglo[dado1][dado2] )
{ // Abre if
Arreglo[dado1][dado2] = ++contador;
x = dado1;
y = dado2;
ciclos = 0;
} // Cierra if
} // Cierra if

} // Cierra while anidado
} // Cierra while

System.out.println("\nLISTO!");
System.out.printf("\nSe recorrieron %d casillas.\n", contador);
System.out.printf("\nSe intentaron %d circuitos antes de obtener el requerido.\n", intentos_fallidos);
Imprime( Arreglo );

} // Cierra Recibe

/*El metodo siguiente despliega el tablero de ajedrez */

//////////////////////////////////////////
// Imprime
///////////////////////////////////////////

public void Imprime(int B[][])
{ // Abre imprime
for ( int k = 1; k <= 8; k++ )
{
for ( int j = 1; j <= 8; j++)
{
System.out.printf("%5d", B[k][j]);

}
System.out.println("\n");
}
} // Cierra imprime
} // Cierra clase Caballo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder