int main(int argc, char ** argv) { FILE *fp; int _pid,_hl,_dr,_pr,_tk;//, m; //thread t; thread * pt; fp = fopen(argv[1], "r"); if(fp == NULL) { printf("No se pudo abrir el archivo\n"); exit(0); } highest = 0; while (fscanf(fp, "%d %d %d %d %d\n", &_pid,&_hl,&_dr,&_pr,&_tk) == 5) { pt = (thread*)malloc(sizeof(thread)); pt->PID = _pid; pt->HL = _hl; pt->DR = _dr; pt->PR = _pr; pt->TK = _tk; tt+=_dr; if(_tk > highest) highest = _tk; procesos.vector[procesos.pos++] = pt; } int s = 0; for(s = 0; s<tt + 1024; s++) { avanzar(s); correr(s); } FILE * fs = fopen(argv[2], "wb+"); DFIFO.diagrama[DFIFO.pos++] = '\0'; DRR_2.diagrama[DRR_2.pos++] = '\0'; DRR_3.diagrama[DRR_3.pos++] = '\0'; DSJF_NE.diagrama[DSJF_NE.pos++] = '\0'; DSJF_EX.diagrama[DSJF_EX.pos++] = '\0'; DHPF_EX.diagrama[DHPF_EX.pos++] = '\0'; DHPF_NE.diagrama[DHPF_NE.pos++] = '\0'; DLTS.diagrama[DLTS.pos++] = '\0'; fprintf(fs," FIFO: %s\n",DFIFO.diagrama); fprintf(fs," RR2: %s\n",DRR_2.diagrama); fprintf(fs," RR3: %s\n",DRR_3.diagrama); fprintf(fs," SJF_NE: %s\n",DSJF_NE.diagrama); fprintf(fs," SJF_EX: %s\n",DSJF_EX.diagrama); fprintf(fs," HPF_EX: %s\n",DHPF_EX.diagrama); fprintf(fs," HPF_NE: %s\n",DHPF_NE.diagrama); fprintf(fs," Lottery: %s\n",DLTS.diagrama); fclose(fp); fclose(fs); return 0; }
void Magnetman::actualizarMaquinaEstados(real deltaT) { reflejos += deltaT; switch(estadoMagnetman) { case CORRIENDO: { if(!puedeCorrer()) { virar(); estadoMagnetman = QUIETO; } break; } case SALTANDO: { if(reflejos >= REFLEJOS && disparos) { reflejos = 0; Megaman *megaman = obtenerMundo().obtenerMegamanCercano(obtenerPosicion()); b2Vec2 vista = megaman->obtenerPosicion()-obtenerPosicion(); if(b2Dot(vista,Cuerpo::versorIzquierda) > 0) modificarOrientacion(izquierda); else modificarOrientacion(derecha); disparar(megaman->obtenerPosicion()-obtenerPosicion()); disparos--; } if(puedeSaltar()) estadoMagnetman = QUIETO; break; } case QUIETO: { real aleatorio = numeroAleatorio(0,1); if(aleatorio > 0.6) { saltar(); estadoMagnetman = SALTANDO; disparos = CANTDISPAROS; } else { correr(); estadoMagnetman = CORRIENDO; } reflejos = 0; break; } } #ifndef compiling_server /*Es mas preciso cambiarlo de esta forma que una vez por cambio de la maquina de estados.*/ if(estaEnElAire()) cambiar(&animacion_saltando); else cambiar(&animacion_corriendo); #endif }
void Sparkman::actualizarMaquinaEstados(real deltaT) { if(!megaman || !obtenerMundo().existeMegaman(IDTarget)) { megaman = obtenerMundo().obtenerMegamanCercano(obtenerPosicion()); IDTarget = megaman->obtenerID(); } reflejos += deltaT; switch(estadoSparkman) { case DISPARANDO: { orientacion = obtenerOrientacion(); b2Vec2 vista = megaman->obtenerPosicion()-obtenerPosicion(); if(b2Dot(vista,Cuerpo::versorIzquierda) > 0) modificarOrientacion(izquierda); else modificarOrientacion(derecha); disparar(megaman->obtenerPosicion()-obtenerPosicion()); estadoSparkman = QUIETO; break; } case SALTANDO: { if(reflejos >= TIEMPOCORRIENDO) { reflejos = 0; dejarCorrer(); } if(puedeSaltar()) estadoSparkman = QUIETO; break; } case QUIETO: { real aleatorio = numeroAleatorio(0,1); modificarOrientacion(orientacion); if(puedeCorrer()) { if(aleatorio < 0.5) { correr(); saltar(); estadoSparkman = SALTANDO; } else { estadoSparkman = DISPARANDO; } } else { virar(); orientacion = obtenerOrientacion(); } reflejos = 0; break; } } #ifndef compiling_server /*Es mas preciso cambiarlo de esta forma que una vez por cambio de la maquina de estados.*/ if(estaEnElAire()) cambiar(&animacion_saltando); else cambiar(&animacion_corriendo); #endif }
int main(int argc, char** argv) { inicializar(); correr(); terminar(); return (EXIT_SUCCESS); }