micro/pippo00.r

01/*
02 descrizione:
03 
04 Questo robot, sviluppato in circa 10 minuti fa:
05 
06 si sposta sul lato destro e da li oscilla.
07 Per sparare esegue una scansione del terreno e in base al range
08 attuale e precedente spara
09 
10 Fine.
11 
12*/
13int rng,orng,deg;
14main()
15{
16   drive(0,100);
17   while(loc_x()<960) sp();
18   drive(90,0);
19   while(speed()>49) sp();
20 
21   while(1)
22   {
23        drive(90,100);
24        while(loc_y()<920) sp();
25        drive(270,0);
26 
27        while(speed() > 49) sp();
28 
29        drive(270,100);
30        while(loc_y()>80) sp();
31        drive(90,0);
32 
33        while(speed() > 49) sp();
34   }
35 
36}
37 
38sp()
39{
40  if (rng=scan(deg,10))
41    {
42     deg -= 5*(scan(deg-5,1)>0);
43     deg += 5*(scan(deg+5,1)>0);
44     deg -= 3*(scan(deg-3,1)>0);
45     deg += 3*(scan(deg+3,1)>0);
46      
47     cannon(deg,rng+rng-orng);
48     orng=rng;
49     if (rng>700) deg+=10;
50    }
51  else
52   {
53    deg+=10;
54    if (deg>=300) deg=80;
55   }
56}