Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C by codigo ( 16 years ago )
#include <stdlib.h>
#define PIC18F4550;

int i,up,left,right,down,x=4,y=15,incy=1,incx=0,xr,yr,cont=0,crecer=0,boton=4,xl=1,yl=1;
int d,j,m;
void setup()
{
 for(i=0 ; i<24 ; i++)
 {
  pinMode(i,OUTPUT);
 }
 for(i=25 ; i<29 ; i++)
 {
  pinMode(i,INPUT);
 }
}

void apagar()
{     
 for(i=0 ; i<=7 ; i++)
 {
  digitalWrite(i,LOW);
 }
 for(i=8 ; i<=23 ; i++)
 {
  digitalWrite(i,HIGH);
 }
}

void encender() 
{
 for(i=8 ; i<=23 ; i++)
 {
  digitalWrite(i,LOW);
 }     
 for(i=0 ; i<=7 ; i++)
 {
  digitalWrite(i,HIGH);
 }
}

void aleatorio()
{
 xr = (rand()%9); 
 if(xr>7)
 {
  xr = 7;
 }
 yr = (rand()#)+1;
 if(yr>23)
 {
  yr=23;
 }
 if(yr<8)
 {
  yr=8;
 }

 if(yr<8)
 {
  yr =8;
 } 
}

void carita()
{   
                   digitalWrite(13,LOW);
                   digitalWrite(14,LOW);
                   digitalWrite(7,HIGH);
                   digitalWrite(6,HIGH);
                   digitalWrite(0,HIGH);
                   digitalWrite(1,HIGH);
                   delay(5);
                   apagar();
                                      delay(2);
                   for(j=2; j<6 ; j++)
                   {
                   digitalWrite(j,HIGH);
                   }
                   digitalWrite(17,LOW);
                                      delay(2);
                   apagar();
                                      delay(2);
                   digitalWrite(18,LOW);        
                   digitalWrite(6,HIGH);
                   digitalWrite(1,HIGH);
                                      delay(2);
                   apagar();
                                      delay(2);
                   digitalWrite(19,LOW);
                   digitalWrite(20,LOW);
                   digitalWrite(7,HIGH);
                   digitalWrite(0,HIGH);
                                      delay(2);
                   apagar();
                                      delay(2);
    
}

void culebra()
{
 digitalWrite(xr,HIGH);
 digitalWrite(yr,LOW);
 delay(3); 
 apagar();
 delay(3);
 up = digitalRead(28);
 left = digitalRead(25);
 right = digitalRead(27);
 down = digitalRead(26);

 if((up == 1)&&(y>8))
 {
  y -= 1;
  yl=1;
  boton=1;
 }
 if((left == 1)&&(x<7))
 {
  x += 1;
  xl=-1;
  boton=2;
 }
 if((right == 1)&&(x>0))
 {
  x -= 1;
  xl=1;
  boton=3;
 }
 if((down == 1)&&(y<23))
 {
  y += 1;
  yl=-1;
  boton=4;
 }
 if((x==xr)&&(y==yr))
 {
  cont = 0;
  crecer++;
 }
 if((boton == 4)||(boton == 1))
 {
  for(i=0;i<=crecer;i++)
  {
   digitalWrite(x+(i*xl),HIGH);
   digitalWrite(y,LOW);
  }
 }
 if((boton == 3)||(boton == 2))
 {
  for(i=0;i<=crecer;i++)
  {
   digitalWrite(x,HIGH);
   digitalWrite(y+(i*yl),LOW);
  }
 }
 if(cont == 0)
 {
  aleatorio();
  cont ++;
 }
}

void mover(int time)
{
 apagar();
  delay(50);
 if((up == 1)&&(y>8))
 {
  incx=0;
  incy=-1;
 }
 if((left == 1)&&(x<7))
 {
  incy=0;
  incx=1;
 }
 if((right == 1)&&(x>0))
 {
  incy=0;
  incx=-1;
 }
 if((down == 1)&&(y<23))
 {
  incy=1;
  incx=0;
 }
 
 if(((x<8)&&(x>-1))&&((y>7)&&(y<24)))
 {
  y += incy;
  x += incx;
 }
 else
 {
      for(m=0;m<50;m++)
           {
        
    carita();
           }
     apagar();
  crecer=0;
  x=4;
  y=15;
  incx=0;
  incy=1;
 }
 culebra();
 delay(time);
}

void loop()
{
 mover(200); 
}

 

Revise this Paste

Your Name: Code Language: