Exemplo n.º 1
0
Arquivo: Quiz.c Projeto: josanuz/quiz2
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;
}
Exemplo n.º 2
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
}
Exemplo n.º 3
0
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
}
Exemplo n.º 4
0
int main(int argc, char** argv) {
    inicializar();
    correr();
    terminar();
    return (EXIT_SUCCESS);
}