Example #1
0
Ejercicio3::Ejercicio3(Opciones opt){
	// Se utiliza el parser para cargar los datos.
	parser.cargar(opt.archivo_entrada);

	parser.setOutputFile(opt.archivo_salida);

	numPiezasMejorSol = 0;
	numPiezasUbicadas = 0;
	numPiezasPorUbicar = 0;
	numPosicionesAnalizadas = 0;

	// Se obtiene el vector con las piezas cargadas.
	filas = parser.getFilas();
	columnas = parser.getColumnas();
	piezasPorUbicar = parser.getPiezas();
	numPosicionesTablero = parser.getCantidadDePiezas();

	// Inicializamos el tablero en blanco.
	inicializarTablero();

	// Chequeamos si hay que utilizar la poda
	poda_habilitada = opt.poda_habilitada;

	// Chequeamos si usamos el algoritmo común, o la mejora.
	mejora_habilitada = opt.mejora_habilitada;

	if (mejora_habilitada){
		// Se requiere el algoritmo mejorado.
		autofill = new EnhancedAF(parser.getColores(), parser.getFilas(), parser.getColumnas(), piezasPorUbicar);
	} else {
		// Utilizamos el algoritmo básico
		autofill = new BasicAF(piezasPorUbicar);

	}
}
Example #2
0
int main(int argc, char **argv)
{
    char * contrincante;
    char * mensaje;
    char * puerto;
    coord* coordAtaque;
    int exitoAtaque;
    int gane=1;
    int termino=1;
    int revancha;
    //controlamos la cantidad de parametros ingresada
    if(argc<3 || argc>3)
    {
		printf("Cantidad de parametros invalido, debe ingresar <IP CONTRINCANTE,PUERTO> -\n"); 
		exit(1);
    }
    
    contrincante=argv[1];
    puerto = argv[2];
    //mensaje= (char*)malloc (sizeof(char)*MSG_SIZE);
   inicializarTablero();
   CargarTablero();
   coordAtaque=(coord*) malloc(sizeof(coord));
   if ( contrincanteConectado(contrincante, puerto)){//Modo cliente
	while(termino)
	{
            //Menu();
	    
	    mensaje = ingresarCoordenaDeAtaque(coordAtaque);
            enviarMsj(mensaje);
            mensaje = recibirMsj();
	    exitoAtaque=*mensaje-'0';
	    informarAtaque(coordAtaque,exitoAtaque);
	    printf("\e[1;1H\e[2J");
	    informarExito (exitoAtaque);
	    mostrarTableros();
            mensaje = recibirMsj();
	    coordAtaque=mensajeAcoordenada(mensaje);
	    printf("\e[1;1H\e[2J");
	    exitoAtaque=recibirAtaque(coordAtaque);
	    mostrarTableros();
	    if (exitoAtaque==3){
	      gane= verificarGanar();
	      termino=0;
	       if (gane==0){
		printf ("EMPATASTE\n");
		
	       }
	      else
		  printf ("PERDISTE\n");  
	    
	    }
	    else
	      if (!obtenerTotalBarcosEnemigos()){
		termino=0;
		printf ("GANASTE\n");
	      }
	    buf[0]=(char)(((int)'0')+exitoAtaque);
	    buf [1]='\0';
	    mensaje=buf;
            enviarMsj(mensaje);
	}
		cerrarSesion();
    }
    else //Modo Servidor
    {