int main(int argc, char const *argv[]){ srand(time(NULL)); int r = 0; printf("Matrices que se utilizaran:\n"); printf("Matriz 1:\n"); for (int i = 0; i < N; ++i){ for (int j = 0; j < N; ++j){ r = rand()%8 +1; matriz1[i][j] = r; printf("%d\t",matriz1[i][j]); } printf("\n"); } printf("Matriz 2:\n"); for (int i = 0; i < N; ++i){ for (int j = 0; j < N; ++j){ r = rand()%8 +1; matriz2[i][j] = r; printf("%d\t",matriz2[i][j]); } printf("\n"); } proceso1(); proceso2(); proceso3(); proceso4(); proceso5(); proceso6(); return 0; }
int main(int argc, char const *argv[]){ srand(time(NULL)); int r = 0; printf("Matrices que se utilizaran:\n"); printf("Matriz 1:\n"); for (int i = 0; i < N; ++i){ for (int j = 0; j < N; ++j){ r = rand()%8 +1; matriz1[i][j] = r; printf("%d\t",matriz1[i][j]); } printf("\n"); } printf("Matriz 2:\n"); for (int i = 0; i < N; ++i){ for (int j = 0; j < N; ++j){ r = rand()%8 +1; matriz2[i][j] = r; printf("%d\t",matriz2[i][j]); } printf("\n"); } for (int p = 1; p <= 6; ++p){ id = fork(); if(id){ wait(NULL); } else{ if(p == 1){ proceso1(); exit(0); } if(p == 2){ proceso2(); exit(0); } if(p == 3){ proceso3(); exit(0); } if(p == 4){ proceso4(); exit(0); } if(p == 5){ proceso5(); exit(0); } if(p == 6){ proceso6(); exit(0); } } } return 0; }
IplImage * aplicar_filtro_juego(IplImage *src, void *param) { IplImage *srcPrev; void** p = (void**)param; IplImage **prev = (IplImage**)(p[0]); int tolerancia = (int)(p[1]); srcPrev = cvCloneImage(*prev); IplImage *out; if(maxY==0) maxY=src->height-radioBola; if(maxX==0) maxX=src->width-radioBola; IplImage *ss; ss=srcPrev; if(!back) back=cvLoadImage("images/image3.jpg",CV_LOAD_IMAGE_COLOR); if(!car) car=cvLoadImage("images/cosito.jpg",CV_LOAD_IMAGE_COLOR); if(!ball) ball=cvLoadImage("images/ball.png",CV_LOAD_IMAGE_COLOR); out = cvCloneImage( back ); typedef int (buscarPos_fn_t) (unsigned char*, unsigned char*,int, int, int); buscarPos_fn_t *proceso; proceso = buscarPos_c; int pos=proceso((unsigned char*)src->imageData,(unsigned char*)ss->imageData,src->height, src->width, src->widthStep); pos=src->width-pos; if(pos<=CAR_RADIO+BORDE) pos=CAR_RADIO+BORDE; if(pos>=ANCHO-CAR_RADIO-BORDE) pos=ANCHO-CAR_RADIO-BORDE; typedef void (hacerAuto_fn_t) (unsigned char*, unsigned char*,int,int, int, int, int); hacerAuto_fn_t *proceso2; proceso2 = hacerAuto_c; proceso2((unsigned char*)car->imageData,(unsigned char*)out->imageData,pos,src->height, src->width, src->widthStep, car->widthStep); int posX=prox_ball_x(); int posY=prox_ball_y(pos); typedef void (hacerPelota_fn_t) (unsigned char*, unsigned char*,int,int,int, int, int, int); hacerPelota_fn_t *proceso3; proceso3 = hacerPelota_c; proceso3((unsigned char*)ball->imageData,(unsigned char*)out->imageData,posX,posY,src->height, src->width, src->widthStep, ball->widthStep); cvReleaseImage(&ss); cvReleaseImage(&car); cvReleaseImage(&back); return out; }
/* Parametros de entrada: argc,argv para darle la ip del servidor * Función: principal * Parametro de salida: 0 * */ int main(int argc, char *argv[]) { int shmid,msgid,proc2,bucle=0,vez=0; msgid=msgget(KEYC,IPC_CREAT|0666);//creamos una COLA shmid=shmget(KEYM,sizeof(MEMO),IPC_CREAT | 0666); //creamos MEMORIA COMPARTIDA pn=(MEMO *)shmat(shmid,0,0); signal(SIGUSR1,minutos); printf("PUNTO 1\n"); if(argc<2)printf("Error en parametros\n"); else { proc2=fork(); switch(proc2) { case -1: printf("Error en proceso lector\n"); break; case 0: while(bucle==0) { if (espera==0) { vez++; printf("Entra proceso. Comprobación nº: %d\n",vez); printf("El total de libros enviados al servidor es: %d\n",pn->enviados); sleep(2); proceso2(argv[1]); espera=1; } } break; default: while (bucle==0) { kill(proc2,SIGUSR1); sleep(20);//Espera 20 segundos } } } close(msgid);//cerramos cola close(shmid);//cerramos memoria return 0; }