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