Exemple #1
0
/*世代を確保、初期化する*/
int initGeneration(myAI* generation[G_SIZE]){
    int i;//counter
    for(i = 0; i < G_SIZE; i++){
        generation[i] = allocAI();
        initAI(generation[i]);
    }
    return 0;
}
Exemple #2
0
void	Client::startAI()
{
  initAI();
  if (_inventory[0] <= 10)
    forkUntil(1000);
  defineGoal(40, 0, 0, 0, 0, 0, 0);
  searchFood(2500);
  look();
  getToNextLvl();
  sleep(1000);
}
Exemple #3
0
int main(int argc, char **argv){
	
	if(argc!=3){
		
		printf("\nmi_mkfs: Error debe escribir: $ ./mi_mkfs <nombre_fichero> <cantidad_bloques>\n");
		
		return -1;
	}
	
	//cantidad_bloques
	unsigned int numBloques = atoi(argv[2]);
	//cantidad_inodos
	unsigned int ninodos = numBloques/4;

	if(numBloques==0){
		printf("\nmi_mkfs: El nº de bloques debe ser mayor a 0.\n");
		
		return -1;
	}
		
	//ETAPA 1:
	unsigned char buf[BLOCKSIZE];
	//Rellenamos de 0's el buffer.
	memset(buf,0,BLOCKSIZE);
	
	//Montamos el dispositivo.
	printf("\nmi_mkfs: Montando el dispositivo...\n");	
	bmount(argv[1]);//nombre_fichero
	printf("\nmi_mkfs: El dispositivo se ha montado con éxito.\n");
	printf("\nmi_mkfs: Realizando escritura...\n");
		
	
	//ETAPA 1:
	//Escribimos todos los bloques en el dispositivo.
	for(int i=0; i<numBloques; i++){
		bwrite(i,buf);
	}
	
	if(initSB(numBloques,ninodos)<0)return -1;
	if(initMB()<0)return -1;
	if(initAI(ninodos)<0)return -1;

	//Se escribe el directorio raíz = inodo raíz.
	reservar_inodo('d',7);

	//Desmontamos el dispositivo.
	printf("\nmi_mkfs: Desmontando el dispositivo...\n");
	bumount();
	
	printf("\nmi_mkfs: Dispositivo desmontado con éxito.\n");

	return 0;
}
Exemple #4
0
int main(int argc, char **argv){

	if(argc!=3){
		printf("Número de argumentos incorrecto \n");
		return -1;
	}

	unsigned int n_bloques = atoi(argv[2]);	//Número de bloques del FS

	unsigned char buf[blocksize];

	memset(buf,0,blocksize);

	bmount(argv[1]);	//Monta Disco
	int i;

	for (i=0; i<n_bloques-1; i++){	//Llena bloques con 0s
		bwrite(i,buf);
	}
	memset(buf,1,blocksize);

	bwrite(n_bloques,buf);


	int block = n_bloques/4;//Para el cáculo de inodos
	if(initSB(n_bloques, block)==-1){	//Inicializa SB
		printf("Error al escribir superbloque");
	}else{
		printf("Superbloque escrito \n");
	}

	if(initMB(n_bloques)==-1){	//Inicializa MB
		printf("Error al escribir mapa de bits");
	}else{
		printf("Mapa de bits escrito \n");
	}

	int n = tamAI(block);

	if (initAI(n)==-1){	//Inicializa AI
		printf("Error al escribir el array de inodes");
	}else{
		printf("Array de inodes escrito \n");
	}
	int inodoraiz = reservar_inodo('d',7);

	printf("Sistema de ficheros creado correctamente \n");	
	
	bumount();	//Desmonta disco

	return 0;
}
Exemple #5
0
int main(int argv,char *argc[])
{
	unsigned char byte;
	unsigned int word;
	unsigned char block[32];
	initAI();
	
	block[0] = 0x00;	
	printf("%d\n",i2cWriteBytes(1,0x48,0x40,block,1));
	
	
	
	//printf("0x%02x\n",getAI(AI_01));
	return 0;
}
Exemple #6
0
int main(){
    srand(time(NULL));

    //myAI* AI = initAndEvolveAIWithGA();

    myAI* AI = allocAI();
    initAI(AI);
    setAIatRandom(AI);
    
    runAI(AI, 5.0);

    freeAI(AI);


    return 0;
}
Exemple #7
0
int main(int argc, char **argv){

int i;
unsigned int fichero;
unsigned int cantidad_bloques;
unsigned int cantInt;
unsigned char buffer[BLOCKSIZE];
unsigned int numInodos;

fichero=bmount(argv[1]);
cantidad_bloques=atoi(argv[2]);
cantInt=atoi(argv[3]); //divisor para la cantidad de inodos de nuestro sistema

if (fichero==-1){
	printf("Error en el montaje del dispositivo en mi_mkfs.c\n");
}
else
{
	memset (buffer,0,BLOCKSIZE);
	for (i=0; i<cantidad_bloques; i++){
		bwrite(i,buffer);
	} 
	printf("i: %i\n",i);
}

numInodos = cantidad_bloques/cantInt;


tamMB(cantidad_bloques);
tamAI(numInodos);
initSB(cantidad_bloques,numInodos);
initMB(cantidad_bloques);
initAI(numInodos);
bumount();

return 0;
}
Exemple #8
0
int main (int argc,char **argv) {

	if (argc == 2) {

		signal(SIGCHLD,reaper);
	
		mount(argv[1]);
		
		struct inodo in;
		if (leer_inodo(&in, 0) < 0) {
			printf("ERROR (simulacion.c -> mi_stat(/)): Error al leer el estado\n");
		}
		
		struct superbloque SB;
		if (bread(0, (char *)&SB) < 0) {
			printf("ERROR (simulacion.c -> error al leer el superbloque)\n");
		}
		
		if (in.t_bytes > 0) {
			vaciar();
			initSB(SB.n_bloques, argv[1]);
			initMB(SB.n_bloques);
			initAI(SB.n_bloques);
		}
			
			
		int i;
		for (i = 0; i < N_PROCESOS; i++) {
		
			int hilo = fork();
			if (hilo == 0) {
			
				if (proceso(i) < 0) {
					printf("ERROR (simulacion.c): Error al crear el proceso %d.\n", i);
					return (-1);
				}
				exit(0);
			}
			else if (hilo < 0) {
				i--;
				printf("Llamamos al reaper, hilo = %d\n", hilo);
				reaper();
			}
			
			sleep(1);		
		}
	
		while (acabados < N_PROCESOS) {
			pause();
		}
			
		unmount(argv[1]);
	
	}
	else {
		printf("ERROR (simulacion.c): Error, parámetros != de 2 (%d).\n", argc);
		return (-1);
	}
	
	return (0);
}
Exemple #9
0
int main(void) {
	while (1) {
		state = 0;
		int setTime = 15;
		numPlayers = 2;
		initScreen();
		clearScreen();
		initCharBuffer();
		clean_up();
		initKeyboard();
		initState0();
		initAI();


		//Bypass the menu system for testing
		if (IORD(keys,0) == 8) {
			initPlayer(pOne, MARIO, "pOne", 50, 100, HUMAN);
			initPlayer(pTwo, LUIGI, "pTwo", 50, 100, COMPUTER);
			state = 2;
		} else {
			while (state == 0) {
				decode_scancode(ps2, &decode_mode, buf, &ascii);
				state_0(decode_mode, buf[0]);
			};
			initState1(pOne);
			if(aOn)file_handle = initAudio(fname);
			if(aOn)alt_irq_register(AUDIO_0_IRQ, &ab, (alt_isr_func) write_fifo);
			if(aOn)		alt_up_audio_enable_write_interrupt(ab->audio);
			while (state == 1) {
				decode_scancode(ps2, &decode_mode, buf, &ascii);
				state_1(decode_mode, buf[0], ascii);
				if(aOn)loop_audio(file_handle, fname, ab);
			};
		}

		//clean_up();
		clearCharBuffer();
		clearScreen();

		//enable keyboard IRQ
		void* keyboard_control_register_ptr = (void*) (KEYBOARD_BASE + 4);
		alt_irq_register(KEYBOARD_IRQ, keyboard_control_register_ptr,
				keyboard_ISR);
		alt_up_ps2_enable_read_interrupt(ps2);

		//Draw field and UI to both buffers
		initField();

		updateField();
		drawName(p[pOne].name, p[pTwo].name, p[pThree].name, p[pFour].name);
		drawGas(p[pOne].gas);
		drawHealth(p[pOne].hp, p[pTwo].hp, p[pThree].hp, p[pFour].hp);
		drawBullet(p[pOne].bulletType);
		//drawWindIndicator(1);
		updateScreen();

		updateField();
		drawName(p[pOne].name, p[pTwo].name, p[pThree].name, p[pFour].name);
		drawGas(p[pOne].gas);
		drawHealth(p[pOne].hp, p[pTwo].hp, p[pThree].hp, p[pFour].hp);
		drawBullet(p[pOne].bulletType);
		//drawWindIndicator(1);

		float time;
		alt_timestamp_start();


		int start_timer_flag = 1;
		//printf("NUM PLAYERA %i\n", numPlayers);
		int i;
		while (state == 2) {
			int fallFlag = 1;

			//Checks to see if any players are falling
			while (fallFlag == 1) {
				fallFlag = 0;
				for (i = 0; i < numPlayers; i++) {
					if (p[i].alive) {
						if (p[i].y + TANK_HEIGHT >= SCREEN_HEIGHT-1) {
							p[i].hp = 0;
							p[i].alive = DEAD;
						}
						checkPlayerFalling(i);
						if (p[i].isFalling) {
							undrawPlayer(i);
							updatePlayer(i);
							fallFlag = 1;
						}
					}
				}
				if (fallFlag == 1) {
					updateScreen();
				}
			}

			if(start_timer_flag){
				start_time = (float) alt_timestamp() / (float) alt_timestamp_freq();
				start_timer_flag = 0;
			}
			time = (float) alt_timestamp() / (float) alt_timestamp_freq()-start_time;
			if (time >= setTime) {
				setPlayerTurn();
			}
			if (p[turn].type == HUMAN) {
				runGame();

			} else {
				p[turn].deg = 0;
				aiMain(turn);
				setPlayerTurn();
			}
			printTimer(setTime - time);
			int deadCount = 0;
			for (i = 0; i < numPlayers; i++) {
				if (p[i].alive == DEAD)
					deadCount++;
			}
			if (deadCount == numPlayers - 1) {
				usleep(500000);
				state = 3;
			}
		}

		alt_up_ps2_disable_read_interrupt(ps2);
		if(aOn)alt_up_audio_disable_write_interrupt(ab->audio);

		GameOverScreen();
	}
}