miércoles, 29 de febrero de 2012

Hola profesora tuve algunos errores del programa al querer grabarlo, lo cual tuve modificar el código por lo que me tarde en subirlo al blog.
La verdad no supe cual era mi error, pero pienso que eran los punteros que los definí mal.
el vídeo de youtube http://www.youtube.com/watch?v=vQtSFH0XCCM&feature=youtube_gdata

Aquí le dejo el nuevo código:


#include <stdio.h>
#include <sys/types.h>
#include <time.h>
#include<stdlib.h>
#include <windows.h>


int numero_random();
int f1(int *);


int main()
{
    int x=0,i,j,t=1,a=0;
    int car[4]={0,0,0,0}, imp=1,ext[4]={1,1,1,1};
    time_t t1,t2, tc1, tc2;
    time(&t1);
    time(&tc1);
   
    while (1){

    time(&t2);
    time(&tc2);
    if (difftime(t2,t1)>=10)
    {
       time(&t1);
       t++;
       imp=1;
       ext[4]=0;
               if (t==5){
                  t=1;
                  }
    }
        //sleep(4000);
    if (difftime(tc2,tc1)>=4)
    {
        time(&tc1);
        a=numero_random(a);
    }
    if(car[t-1]>1&&t==1)
      ext[0]=0;
      if(car[t-1]>1&&t==2)
      ext[1]=0;
      if(car[t-1]>1&&t==3)
      ext[2]=0;
      if(car[t-1]>1&&t==4)
      ext[3]=0;
    if(ext[0]==0&&difftime(t2,t1)>=2)
       {time(&t1);
       printf("\n\n------------ \n\n");
        ext[0]=1;}
    if(ext[1]==0&&difftime(t2,t1)>=2)
       {time(&t1);
       printf("\n\n-------------- \n\n");
        ext[1]=1;}
    if(ext[2]==0&&difftime(t2,t1)>=2)
       {time(&t1);
       printf("\n\n------------------\n\n");
        ext[2]=1;}
    if(ext[3]==0&&difftime(t2,t1)>=2)
       {time(&t1);
       printf("\n\n---------------------\n\n");
        ext[3]=1;}
         if(a==1){
                     printf("aparece un carro de izquierda a derecha\n\n");
                   
                   
                    if(t!=1){
                             ++car[0];
                             printf("el carro frena hasta un cierto punto: DERECHA\n\n");
                           
                             if (car[0]>=2){
                                   printf("frena detras del anterior: DERECHA\n");
                                   //aumenta el limite del carro
                                   f1(&car[0]);
                                   }
                             }
                             a=0;
                    }
         
           if(a==2){
                     printf("aparece un carro de arriba a abajo\n\n");
                   
                   
                    if(t!=2){
                             ++car[1];
                             printf("el carro frena hasta un cierto punto: ABAJO\n\n");
                           
                             if (car[1]>=2){
                                   printf("frena detras del anterior: ABAJO\n");
                                   //aumenta el limite del carro
                                   f1(&car[1]);
                                   }
                             }
                              a=0;
                    }
           if(a==3){
                     printf("aparece un carro de derecha a izquierda\n\n");
                   
                   
                    if(t!=3){
                             ++car[2];
                             printf("el carro frena hasta un cierto punto: IZQUIERDA\n\n");
                           
                             if (car[2]>=2){
                                   printf("frena detras del anterior: IZQUIERDA\n");
                                   //aumenta el limite del carro
                                   f1(&car[2]);
                                   }
                             }
                              a=0;
                    }
           if(a==4){
                     printf("aparece un carro de abajo a arriba\n\n");
                   
                   
                    if(t!=4){
                             ++car[3];
                             printf("el carro frena hasta un cierto punto: ARRIBA\n\n");
                           
                             if (car[3]>=2){
                                   printf("frena detras del anterior: ARRIBA\n");
                                   //aumenta el limite del carro
                                   f1(&car[3]);
                                   }
                             }
                              a=0;
                    }
   if(imp==1)
   {
           if(t==1){
                    printf("el semaforo de la derecha esta en verde\n");
                    if(t==1&&car[0]>=1){
                             printf("el carro avanza\n\n\n\n");
         
                           
                              car[0]=0;
                             }
                    //aumenta una variable para que el carro siga
                   
                    }
         
           else
              printf("el semaforo de la derecha se pone en rojo\n");
         
         
           printf("%d\n\n\n\n",car[0]);
           if(t==2){
                    printf("el semaforo de abajo esta en verde\n");
                    if(t==2&&car[1]>=1){
                             printf("el carro avanza\n\n\n\n");
                           
                              car[1]=0;
                             }
                    }
           else
              printf("el semaforo de abajo se pone en rojo\n");
         
           printf("%d\n\n\n\n",car[1]);
         
         
           if(t==3){
                    printf("el semaforo de la izquierda esta en verde\n");
                    if(t==3&&car[2]>=1){
                             printf("el carro avanza\n\n\n\n");
                       
                              car[2]=0;
                             }
                    }
           else
           printf("el semaforo de la izquierda se pone en rojo\n");
         
           printf("%d\n\n\n\n",car[2]);
           if(t==4){
                    printf("el semaforo de arriba esta en verde\n");
                    if(t==4&&car[3]>=1){
                             printf("el carro avanza\n\n\n\n");
                             
                              car[3]=0;
                             }
                   
                    }
                   
           else
              printf("el semaforo de arriba se pone en rojo\n");
           printf("%d\n\n\n\n",car[3]);
      imp=0;
   }
          }
   
    getchar();
    return 0;
}
int f1(int *r){
        *r++;
        }

int numero_random(){
srand(time(NULL)); //semilla
return (rand()%5); //rellena con numeros entre 0 y 199
}



No hay comentarios:

Publicar un comentario