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); } }
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 {