Example #1
0
unsigned char set_av(	struct Aviao av[], 
						unsigned char d, 
						unsigned char p,
                        unsigned char disp){ 
	unsigned char m1 = 0;  
	unsigned char m2 = 10;    

    if(d == 1){ 
        av[disp].id=p+1; 
        av[disp].dir=1; 
        av[disp].x = m1; 
        av[disp].y=238; 
        av[disp].z=20; 
        av[disp].vel=8; 
        av[disp].bum = 1; 
        av[disp].ex = 0;
        if(disp > 4){av[disp].ex = 1;}
        print_av(av[disp]);       
    }  
    
    if(d > 1){
		av[disp].id = p+1; 
		av[disp].dir = 2; 
		av[disp].x = m2; 
		av[disp].y = 238; 
		av[disp].z = 20; 
		av[disp].vel = 8; 
		av[disp].bum = 2; 
        av[disp].ex = 0;
        if(disp > 4){av[disp].ex = 1;}
		print_av(av[disp]);	
    }  
	return 1;     
}  /***************/
Example #2
0
void		print_arg(pid_t pid, unsigned int pos,
			  struct user_regs_struct regs, unsigned long long av)
{
  if (strlen(g_tab_syscall[(int)regs.orig_rax].token) < pos)
    return ;
  if (pos > 0 && pos != (unsigned int)g_tab_syscall[(int)regs.orig_rax].avg)
    printf(", ");
  if (g_tab_syscall[(int)regs.orig_rax].token[pos] == '1')
    print_av(av);
  else if (g_tab_syscall[(int)regs.orig_rax].token[pos] == '2')
    print_arg_string(pid, regs, av);
  else if (g_tab_syscall[(int)regs.orig_rax].token[pos] == '3')
    {
      if (av == 0)
	printf("NULL");
      else{
	print_av(av);
      }
    }
  else if (g_tab_syscall[(int)regs.orig_rax].token[pos] == '0')
    printf("void");
  else if (g_tab_syscall[(int)regs.orig_rax].token[pos] == '4')
    printf("%c", (char)av);
}
Example #3
0
//----------------------------------------------------------//
// Execução do desenvolvimento
//----------------------------------------------------------//
void main()
{
unsigned char 	i =0, t = 0, j = 0, k = 0, 
				p = 0, e = 0, sub = 0, sum = 1, 
				m = 0, dir = 0, excesso = 0, d_1 = 0,
				d_2 = 1, s = 0, r =0, disponivel = 0;
  while (1) {       
      struct Aviao av[12]; //desses 12 só 5 aviao entra no CTA 
      if(p > 5){
         for (r=0; r < 12; r++){
             if(av[r].id == 0){ disponivel = r; break;}
         }
      } else {disponivel = p;}
      
      //insere aviao manualmente sentido Norte -> Sul
      if(!A1) 
		i=0;
      if (A1 && i < 1){
          set_av(av, 1, p, disponivel);  
		  B1 = 1;            
          i = 1; 
		  p += 1; 
      } /*********/          
          
      //insere aviao manualmente sentido Sul -> Norte 
      if(!A2)
		t = 0;
	  
      if (A2 && t < 1){
         set_av(av, 2, p, disponivel);  
		 B1 = 1;             
         t = 1; 
		 p += 1;  
      }/*********/        
     
      
   //Imprime o status atualizado de todas aeronaves    
   if(A3){          
     for(i=0; i < 12; i++){  
         printf("\n"); 
        desloc_av(av,i); //simula deslocamento
        if(!A0){
			colisao_av(av);
			}
        
     if(av[0].id ==0 && av[1].id ==0 && av[2].id ==0 && av[3].id ==0 && av[4].id ==0){
			printf("\nCTA Vazio"); 
			B1 =0;
			} 		
		//	print_av(av[i]);// relatorio de aeronaves			 
		
        if(av[i].ex == 1){ 
			B0 = 1;
			printf("\n\nAeronave %d suba ate sair do CTA\n",av[i].id); 
            if(av[i].ex == 1){ 
				sub += 1; 
				subir_av(av,i,sub); 
				av[i].ex = 2; 
				B0 = 0;} 
				if(sub > 4){
					sub = 5;
				}
        }        
        if(av[i].ex == 2 ){ 
			e = av[i].id; 
			dir = av[i].dir;
			for(m = 0; m < 10; m++){	
				if(m < 5 && av[m].id == 0){
					if(e > 0 && av[i].ex == 2){
						printf("\n\nAviao:%d desca para o CTA\n",e); 
						descer_av(av,m,e,dir); 
						sub -= 1; 
						e = 0;
					}
					
					av[i].ex = 0;
                    
				} 
				if(av[m].dir == 1 && av[m].x == 10 && av[m].id > 0){ 
					del_av(av,m); 
					d_1 = av[m].x;
				}
				if(av[m].dir == 2 && av[m].x == 0 && av[m].id > 0){ 
					del_av(av,m); 
					d_2 = av[m].x;
				} 
          }
        }   
        if(av[i].dir == 1 && av[i].x == 10 && av[i].id > 0){ 
			del_av(av,i);
		}
        if(av[i].dir == 2 && av[i].x == 0 && av[i].id > 0){ 
			del_av(av,i);
		}
    }     
         
   }/************/ 
   if(A3){
      if(!vai_colidir_av(av, A0) && B1 == 1){
            printf("Atualizacao:\n\nRotas sem risco de colisao\n");
         } 
   }      
   
   /**GARANTINDO A LIBEAÇÃO DE ESPAÇO DE MEMÓRIA NO VETOR**/
    for(s=0; s < 12; s++){
        if (av[s].id == 0){            
            av[s].id= 0,
            av[s].dir= 0,
            av[s].x= 0,
            av[s].y= 0,
            av[s].z= 0;
            av[s].vel= 0,
            av[s].ex= 0;
            av[s].bum= 0;           
          }
          
          if (A3){
              ordem_av(av,s); //evita aviao no mesmo ponto x
              print_av(av[s]); // Atualiza relatorio
              }
          
    }  
    /**SÓ APÓS CHECAR EXPLOSAO**/
    if (A7){
        B3=0;
        } 
    
 }//fim while
}//fim main