Вы находитесь на странице: 1из 26

//MEGA pins 22-53 const int buttonPin = A0; // the number of the pushbutton pin const double buttonDebounceTime

= 800.0; const const const const const const int int int int int int lHorizontal[6] = {22,23,24,25,26,27}; //Pins lDiagonal[6] = {28,29,30,31,32,33}; lSweep[4] = {34,35,36,37}; rHorizontal[6] = {38,39,40,41,42,43}; rDiagonal[6] = {44,45,46,47,48,49}; rSweep[4] = {50,51,52,53}; 7, 5, 2, 10, 10, 6, 12, 12, 8, 12 14,22,24,24,12,12,1000,8 ,2 ,2 ,3 last case 6 7 8 9 10 11 12 13 14 15 28 29 30 31 32 33 34 35 36 37 3

const int numChaseSteps[] = {1, 1, 7, 7, 5, 7, , 12, 8, 1, 1, 1, 1, 27, 27, 27, 27, 3, 3, ,3 ,24 ,24 ,12 ,12, 22,1000}; //One more than // 0 1 2 3 4 5 16 17 18 19 20 21 22 23 24 25 26 27 8 39 40 41 42 43 44,45

int TOTALSTEPS = 34; /* //TEST CODE const int chaseSpeeds[TOTALSTEPS] = {500,500,500,500,500,500,500,500,500,500,500 ,500,500,500,500,500,500,500,500,500,500,500,400,400,400,400,306,306,306,306,306 ,306,306,306}; // speeds of each chase const int chaseOrder[TOTALSTEPS] = {0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31 ,32 ,33}; // order of chases */ int song=0; int chaseSpeeds[500]; int chaseOrder[500]; //ANOTHER PYRAMID const int B = 306; //306 const int aTOTALSTEPS = 15; const int achaseSpeeds[aTOTALSTEPS] = {500,500,B/2,B/8,B ,B/1.5,B/2,B/2,B/4,B,B/ 2,B/4,B*2,B/2,100}; // speeds of each chase const int achaseOrder[aTOTALSTEPS] = {0 ,1 ,27 ,33 ,26,34 ,29 ,12 ,32 ,8,10 ,16 ,5 ,22 ,1 }; // order of chases //LIKE FATHER LIKE SON const int E = 350; //351^ 362^ 370^ 400^ 590v 500v 450v 420v 410v 400v 385^ 3 92^ 396v 380v 350v 325^ 340^ 350^ 370^ 380^ 400^ 500V 460V 420v 400^ 410v 401v 3 50 const int bTOTALSTEPS = 32; const int bchaseSpeeds[bTOTALSTEPS] = {500 ,E ,E ,E/2,E/4,E/16,E,E ,E ,E ,E /2,E/4,E/16,E,E ,E*2,500,E*2,E/2,E/4,E/2,E,E/2,E/4,E/8,E/8,E ,E/8,E/8,E/8,500 ,E}; // speeds of each chase const int bchaseOrder[bTOTALSTEPS] = {0 ,36,16,5 ,9 ,13 ,8,27 ,36,13, 2 ,10 ,16 ,8,26 ,38 ,0 ,39 ,6 ,42 ,44 ,5,9 ,12 ,10 ,31 ,13,13 ,12 ,32 ,1 ,45}; // order of chases // variables will change: int buttonState = 0; // variable for reading the pushbutton status int stepsSinceLastPress = 0; // steps since last button press, for debounce int currentChase = 0; // current chase

int chasePosition = 0; // position in the current chase boolean pinStatus[32] ={false,false,false,false,false,false,false,false,false,fa lse,false,false,false,false,false,false,false,false,false,false,false,false,fals e,false,false,false,false,false,false,false,false,false}; int r =0; void setup() { pinMode(0, INPUT); if(digitalRead(0)==HIGH){ TOTALSTEPS=aTOTALSTEPS; for(int i=0;i<TOTALSTEPS;i++) chaseSpeeds[i]=achaseSpeeds[i]; for(int i=0;i<TOTALSTEPS;i++) chaseOrder[i]=achaseOrder[i]; } else{ TOTALSTEPS=bTOTALSTEPS; for(int i=0;i<TOTALSTEPS;i++) chaseSpeeds[i]=bchaseSpeeds[i]; for(int i=0;i<TOTALSTEPS;i++) chaseOrder[i]=bchaseOrder[i]; } // initialize outputs: for(int i=22; i<=53;i++) { pinMode(i, OUTPUT); off(i); } randomSeed(analogRead(1)); } void loop(){ if (buttonClicked() && stepsSinceLastPress > (int)(buttonDebounceTime/chaseSpe eds[currentChase]+1)) { stepsSinceLastPress=0; chasePosition=0; currentChase=(currentChase+1)%TOTALSTEPS; allOff(2); } else stepsSinceLastPress++; switch(chaseOrder[currentChase]){ //Chase paremtersBoth case 0: allOff(2); break; case 1: allOn(2); break; case 2: verticalSwipeUp(2); ar case 3: diagonalSwipeOut(2); case 4: sweepSwipeOut(2); case 5: verticalSwipeDown(2); n dissapear case 6: diagonalSwipeIn(2); break; break; break; //Reverse stack down/in, the break; 0: Left 1: Right 2:

break; //Stack up/out, then dissape

case 7:

sweepSwipeIn(2);

break; break; //All strobe break; break; break; break; //Stack up/out and back down break; break; break; //Stack down/in and back up/ break; break; break; //Randomly on and off break; break; break; break; //Tetris style build, then c

case 8: flash(2); case 9: verticalBounce(2); case 10:diagonalBounce(2); case 11: sweepBounce(2); case 12:verticalSwipeBounceUp(2); /in case 13:diagonalSwipeBounceOut(2); case 14: sweepSwipeBounceOut(2); case 15:verticalSwipeBounceDown(2); out case 16:diagonalSwipeBounceIn(2); case 17: sweepSwipeBounceIn(2); case case case case 18: 19: 20: 21: randomAllFlash(2); randomVerticalFlash(2); randomDiagonalFlash(2); randomSweepFlash(2); pyramidVerticalBuild(2);

case 22: ollapse case 23: case 24: n rise away case 25:

pyramidDiagonalBuild(2); break; reversePyramidVerticalBuild(2); break; //Tetris style build up, the reversePyramidDiagonalBuild(2); break; break; //Rain it down break;

case 26: verticalRain(2); case 27: diagonalRain(2);

case 28: fullSweep(2); break; //Full sweep from side to si de on both pyramids, parameters ignored case 29: fullDiagonalSweep(2); break; //Full sweep from side to si de on both pyramids using diagonols, parameters ignored case a super case case case 30: diagonalAlternatingPushUp(2); break; //Push up and pull down like thing, parameters ignored 31: horizontalAlternatingPushUp(2); break; 32: diagonalSimultaniousAlternatingPushUp(2); break; 33: horizontalSimultaniousAlternatingPushUp(2); break; break; break; break; break; break; //Rain it up break;

case 34: verticalSwipeUp(2); case 35: fatherSonIntro(2); case 36: alternateHorizontal(2); case 37: alternateDiagonal(2); case 38: reverseVerticalRain(2); case 39: reverseDiagonalRain(2);

case 40: diagonalAlternatingPushDown(2); break; //Push up and pull down l ike a super thing, parameters ignored case 41: horizontalAlternatingPushDown(2); break; case 42: diagonalSimultaniousAlternatingPushDown(2); break; case 43: horizontalSimultaniousAlternatingPushDown(2); break;

case 44: fullHorizontalSweep(2); case 45: reverseVerticalSwipeUp(2); }

break; break;

chasePosition=(chasePosition+1)%numChaseSteps[chaseOrder[currentChase]]; r=chaseSpeeds[currentChase]; while(r>0&&!(buttonClicked() && stepsSinceLastPress > (int)(buttonDebounceTime /chaseSpeeds[currentChase]+1))) { r-=100; delay(100); } } void reverseVerticalSwipeUp(int s) { if(s==0||s==2) switch(chasePosition){ case 0:on(lHorizontal[0],lHorizontal[5]); case 6:off(lHorizontal[0]); break; case 5:off(lHorizontal[1]); break; case 4:off(lHorizontal[2]); break; case 3:off(lHorizontal[3]); break; case 2:off(lHorizontal[4]); break; case 1:off(lHorizontal[5]); break; } if(s==1||s==2) switch(chasePosition){ case 0:on(rHorizontal[0],rHorizontal[5]); case 6:off(rHorizontal[0]); break; case 5:off(rHorizontal[1]); break; case 4:off(rHorizontal[2]); break; case 3:off(rHorizontal[3]); break; case 2:off(rHorizontal[4]); break; case 1:off(rHorizontal[5]); break; } } void fullHorizontalSweep(int s) { switch(chasePosition){ case 0:on(rHorizontal[5]); off(rHorizontal[4]); case 1:on(rHorizontal[4]); off(rHorizontal[5]); case 2:on(rHorizontal[3]); off(rHorizontal[4]); case 3:on(rHorizontal[2]); off(rHorizontal[3]); case 4:on(rHorizontal[1]); off(rHorizontal[2]); case 5:on(rHorizontal[0]); off(rHorizontal[1]); case 6:on(lHorizontal[0]); off(rHorizontal[0]); case 7:on(lHorizontal[1]); off(lHorizontal[0]); case 8:on(lHorizontal[2]); off(lHorizontal[1]); case 9:on(lHorizontal[3]); off(lHorizontal[2]); case 10:on(lHorizontal[4]); off(lHorizontal[3]); case 11:on(lHorizontal[5]); off(lHorizontal[4]); case 12:on(lHorizontal[4]); off(lHorizontal[5]); case 13:on(lHorizontal[3]); off(lHorizontal[4]); case 14:on(lHorizontal[2]); off(lHorizontal[3]);

break;

break;

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

case case case case case case case } }

15:on(lHorizontal[1]); 16:on(lHorizontal[0]); 17:on(rHorizontal[0]); 18:on(rHorizontal[1]); 19:on(rHorizontal[2]); 20:on(rHorizontal[3]); 21:on(rHorizontal[4]);

off(lHorizontal[2]); off(lHorizontal[1]); off(lHorizontal[0]); off(rHorizontal[0]); off(rHorizontal[1]); off(rHorizontal[2]); off(rHorizontal[3]);

break; break; break; break; break; break; break;

void alternateHorizontal(int s) { if(s==0||s==2) switch(chasePosition){ case 0:on(lHorizontal[0]); on(lHorizontal[2]); on(lHorizontal[4]); off(lHorizontal[1]); off(lHorizontal[3]); off(lHorizontal[5]); break; case 1:on(lHorizontal[1]); on(lHorizontal[3]); on(lHorizontal[5]); off(lHorizontal[0]); off(lHorizontal[2]); off(lHorizontal[4]); break; } if(s==1||s==2) switch(chasePosition){ case 0:on(rHorizontal[0]); on(rHorizontal[2]); on(rHorizontal[4]); off(rHorizontal[1]); off(rHorizontal[3]); off(rHorizontal[5]); break; case 1:on(rHorizontal[1]); on(rHorizontal[3]); on(rHorizontal[5]); off(rHorizontal[0]); off(rHorizontal[2]); off(rHorizontal[4]); break; } } void alternateDiagonal(int s) { if(s==0||s==2) switch(chasePosition){ case 0:on(lDiagonal[0]); on(lDiagonal[2]); on(lDiagonal[4]); off(lDiagonal[1]); off(lDiagonal[3]); off(lDiagonal[5]); k; case 1:on(lDiagonal[1]); on(lDiagonal[3]); on(lDiagonal[5]); off(lDiagonal[0]); off(lDiagonal[2]); off(lDiagonal[4]); k; } if(s==1||s==2) switch(chasePosition){ case 0:on(rDiagonal[0]); on(rDiagonal[2]); on(rDiagonal[4]); off(rDiagonal[1]); off(rDiagonal[3]); off(rDiagonal[5]); k; case 1:on(rDiagonal[1]); on(rDiagonal[3]); on(rDiagonal[5]); off(rDiagonal[0]); off(rDiagonal[2]); off(rDiagonal[4]); k; } } void fatherSonIntro(int s) { switch(chasePosition){ case 0:allOff(2); break; case 2:allOn(2); break; case 4:allOff(2);

brea brea

brea brea

on(lHorizontal[0],lHorizontal[2]);off(lHorizontal[3],lHorizontal[5] ); ); ); ); ); ); ); on(rHorizontal[0],rHorizontal[2]);off(rHorizontal[3],rHorizontal[5] ); } } void horizontalSimultaniousAlternatingPushDown(int s) { switch(chasePosition){ case 0:on(rHorizontal[5]);off(lHorizontal[0]); case 1:on(rHorizontal[4]);off(lHorizontal[1]); case 2:on(rHorizontal[3]);off(lHorizontal[2]); case 3:on(rHorizontal[2]);off(lHorizontal[3]); case 4:on(rHorizontal[1]);off(lHorizontal[4]); case 5:on(rHorizontal[0]);off(lHorizontal[5]); case 6:off(rHorizontal[0]);on(lHorizontal[5]); case 7:off(rHorizontal[1]);on(lHorizontal[4]); case 8:off(rHorizontal[2]);on(lHorizontal[3]); case 9:off(rHorizontal[3]);on(lHorizontal[2]); case 10:off(rHorizontal[4]);on(lHorizontal[1]); case 11:off(rHorizontal[5]);on(lHorizontal[0]); } } void diagonalSimultaniousAlternatingPushDown(int s) { switch(chasePosition){ case 0:on(rDiagonal[5]);off(lDiagonal[0]); case 1:on(rDiagonal[4]);off(lDiagonal[1]); case 2:on(rDiagonal[3]);off(lDiagonal[2]); case 3:on(rDiagonal[2]);off(lDiagonal[3]); case 4:on(rDiagonal[1]);off(lDiagonal[4]); case 5:on(rDiagonal[0]);off(lDiagonal[5]); case 6:off(rDiagonal[0]);on(lDiagonal[5]); case 7:off(rDiagonal[1]);on(lDiagonal[4]); case 8:off(rDiagonal[2]);on(lDiagonal[3]); case 9:off(rDiagonal[3]);on(lDiagonal[2]); case 10:off(rDiagonal[4]);on(lDiagonal[1]); case 11:off(rDiagonal[5]);on(lDiagonal[0]); } } void horizontalAlternatingPushDown(int s) { switch(chasePosition){ case 0:on(rHorizontal[5]); break; break; on(rHorizontal[3],rHorizontal[5]);off(rHorizontal[0],rHorizontal[2] break; case 7:on(lHorizontal[3],lHorizontal[5]);off(lHorizontal[0],lHorizontal[2] on(rHorizontal[0],rHorizontal[2]);off(rHorizontal[3],rHorizontal[5] break; case 6:on(lHorizontal[0],lHorizontal[2]);off(lHorizontal[3],lHorizontal[5] on(rHorizontal[3],rHorizontal[5]);off(rHorizontal[0],rHorizontal[2] break; case 5:on(lHorizontal[3],lHorizontal[5]);off(lHorizontal[0],lHorizontal[2]

break; break; break; break; break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break; break; break;

case case case case case case case case case case case case case case case case case case case case case case case } }

1:on(rHorizontal[4]); 2:on(rHorizontal[3]); 3:on(rHorizontal[2]); 4:on(rHorizontal[1]); 5:on(rHorizontal[0]); 6:off(rHorizontal[0]); 7:off(rHorizontal[1]); 8:off(rHorizontal[2]); 9:off(rHorizontal[3]); 10:off(rHorizontal[4]); 11:off(rHorizontal[5]); 12:on(lHorizontal[5]); 13:on(lHorizontal[4]); 14:on(lHorizontal[3]); 15:on(lHorizontal[2]); 16:on(lHorizontal[1]); 17:on(lHorizontal[0]); 18:off(lHorizontal[0]); 19:off(lHorizontal[1]); 20:off(lHorizontal[2]); 21:off(lHorizontal[3]); 22:off(lHorizontal[4]); 23:off(lHorizontal[5]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

void diagonalAlternatingPushDown(int { switch(chasePosition){ case 0:on(rDiagonal[5]); case 1:on(rDiagonal[4]); case 2:on(rDiagonal[3]); case 3:on(rDiagonal[2]); case 4:on(rDiagonal[1]); case 5:on(rDiagonal[0]); case 6:off(rDiagonal[0]); case 7:off(rDiagonal[1]); case 8:off(rDiagonal[2]); case 9:off(rDiagonal[3]); case 10:off(rDiagonal[4]); case 11:off(rDiagonal[5]); case 12:on(lDiagonal[5]); case 13:on(lDiagonal[4]); case 14:on(lDiagonal[3]); case 15:on(lDiagonal[2]); case 16:on(lDiagonal[1]); case 17:on(lDiagonal[0]); case 18:off(lDiagonal[0]); case 19:off(lDiagonal[1]); case 20:off(lDiagonal[2]); case 21:off(lDiagonal[3]); case 22:off(lDiagonal[4]); case 23:off(lDiagonal[5]); } }

s) break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

void horizontalSimultaniousAlternatingPushUp(int s) { switch(chasePosition){

case case case case case case case case case case case case } }

0:on(rHorizontal[0]);off(lHorizontal[5]); 1:on(rHorizontal[1]);off(lHorizontal[4]); 2:on(rHorizontal[2]);off(lHorizontal[3]); 3:on(rHorizontal[3]);off(lHorizontal[2]); 4:on(rHorizontal[4]);off(lHorizontal[1]); 5:on(rHorizontal[5]);off(lHorizontal[0]); 6:off(rHorizontal[5]);on(lHorizontal[0]); 7:off(rHorizontal[4]);on(lHorizontal[1]); 8:off(rHorizontal[3]);on(lHorizontal[2]); 9:off(rHorizontal[2]);on(lHorizontal[3]); 10:off(rHorizontal[1]);on(lHorizontal[4]); 11:off(rHorizontal[0]);on(lHorizontal[5]);

break; break; break; break; break; break; break; break; break; break; break; break;

void diagonalSimultaniousAlternatingPushUp(int s) { switch(chasePosition){ case 0:on(rDiagonal[0]);off(lDiagonal[5]); case 1:on(rDiagonal[1]);off(lDiagonal[4]); case 2:on(rDiagonal[2]);off(lDiagonal[3]); case 3:on(rDiagonal[3]);off(lDiagonal[2]); case 4:on(rDiagonal[4]);off(lDiagonal[1]); case 5:on(rDiagonal[5]);off(lDiagonal[0]); case 6:off(rDiagonal[5]);on(lDiagonal[0]); case 7:off(rDiagonal[4]);on(lDiagonal[1]); case 8:off(rDiagonal[3]);on(lDiagonal[2]); case 9:off(rDiagonal[2]);on(lDiagonal[3]); case 10:off(rDiagonal[1]);on(lDiagonal[4]); case 11:off(rDiagonal[0]);on(lDiagonal[5]); } } void horizontalAlternatingPushUp(int s) { switch(chasePosition){ case 0:on(rHorizontal[0]); break; case 1:on(rHorizontal[1]); break; case 2:on(rHorizontal[2]); break; case 3:on(rHorizontal[3]); break; case 4:on(rHorizontal[4]); break; case 5:on(rHorizontal[5]); break; case 6:off(rHorizontal[5]); break; case 7:off(rHorizontal[4]); break; case 8:off(rHorizontal[3]); break; case 9:off(rHorizontal[2]); break; case 10:off(rHorizontal[1]); break; case 11:off(rHorizontal[0]); break; case 12:on(lHorizontal[0]); break; case 13:on(lHorizontal[1]); break; case 14:on(lHorizontal[2]); break; case 15:on(lHorizontal[3]); break; case 16:on(lHorizontal[4]); break; case 17:on(lHorizontal[5]); break; case 18:off(lHorizontal[5]); break; case 19:off(lHorizontal[4]); break; case 20:off(lHorizontal[3]); break; case 21:off(lHorizontal[2]); break; case 22:off(lHorizontal[1]); break; case 23:off(lHorizontal[0]); break;

break; break; break; break; break; break; break; break; break; break; break; break;

} } void diagonalAlternatingPushUp(int s) { switch(chasePosition){ case 0:on(rDiagonal[0]); break; case 1:on(rDiagonal[1]); break; case 2:on(rDiagonal[2]); break; case 3:on(rDiagonal[3]); break; case 4:on(rDiagonal[4]); break; case 5:on(rDiagonal[5]); break; case 6:off(rDiagonal[5]); break; case 7:off(rDiagonal[4]); break; case 8:off(rDiagonal[3]); break; case 9:off(rDiagonal[2]); break; case 10:off(rDiagonal[1]); break; case 11:off(rDiagonal[0]); break; case 12:on(lDiagonal[0]); break; case 13:on(lDiagonal[1]); break; case 14:on(lDiagonal[2]); break; case 15:on(lDiagonal[3]); break; case 16:on(lDiagonal[4]); break; case 17:on(lDiagonal[5]); break; case 18:off(lDiagonal[5]); break; case 19:off(lDiagonal[4]); break; case 20:off(lDiagonal[3]); break; case 21:off(lDiagonal[2]); break; case 22:off(lDiagonal[1]); break; case 23:off(lDiagonal[0]); break; } } void fullDiagonalSweep(int s) { switch(chasePosition){ case 0:on(rDiagonal[5]); off(rDiagonal[4]); case 1:on(rDiagonal[4]); off(rDiagonal[5]); case 2:on(rDiagonal[3]); off(rDiagonal[4]); case 3:on(rDiagonal[2]); off(rDiagonal[3]); case 4:on(rDiagonal[1]); off(rDiagonal[2]); case 5:on(rDiagonal[0]); off(rDiagonal[1]); case 6:on(lDiagonal[0]); off(rDiagonal[0]); case 7:on(lDiagonal[1]); off(lDiagonal[0]); case 8:on(lDiagonal[2]); off(lDiagonal[1]); case 9:on(lDiagonal[3]); off(lDiagonal[2]); case 10:on(lDiagonal[4]); off(lDiagonal[3]); case 11:on(lDiagonal[5]); off(lDiagonal[4]); case 12:on(lDiagonal[4]); off(lDiagonal[5]); case 13:on(lDiagonal[3]); off(lDiagonal[4]); case 14:on(lDiagonal[2]); off(lDiagonal[3]); case 15:on(lDiagonal[1]); off(lDiagonal[2]); case 16:on(lDiagonal[0]); off(lDiagonal[1]); case 17:on(rDiagonal[0]); off(lDiagonal[0]); case 18:on(rDiagonal[1]); off(rDiagonal[0]); case 19:on(rDiagonal[2]); off(rDiagonal[1]); case 20:on(rDiagonal[3]); off(rDiagonal[2]); case 21:on(rDiagonal[4]); off(rDiagonal[3]); } }

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

void fullSweep(int s) { switch(chasePosition){ case 0:on(rSweep[3]); off(rSweep[2]); case 1:on(rSweep[2]); off(rSweep[3]); case 2:on(rSweep[1]); off(rSweep[2]); case 3:on(rSweep[0]); off(rSweep[1]); case 4:on(lSweep[0]); off(rSweep[0]); case 5:on(lSweep[1]); off(lSweep[0]); case 6:on(lSweep[2]); off(lSweep[1]); case 7:on(lSweep[3]); off(lSweep[2]); case 8:on(lSweep[2]); off(lSweep[3]); case 9:on(lSweep[1]); off(lSweep[2]); case 10:on(lSweep[0]); off(lSweep[1]); case 11:on(rSweep[0]); off(lSweep[0]); case 12:on(rSweep[1]); off(rSweep[0]); case 13:on(rSweep[2]); off(rSweep[1]); } }

break; break; break; break; break; break; break; break; break; break; break; break; break; break;

void reverseDiagonalRain(int s) { if(s==0||s==2) switch(chasePosition){ case 2:on(lDiagonal[5]); on(lDiagonal[2]); off(lDiagonal[0]); off(lDiagonal[3]); case 1:on(lDiagonal[4]); on(lDiagonal[1]); off(lDiagonal[5]); off(lDiagonal[2]); case 0:on(lDiagonal[3]); on(lDiagonal[0]); off(lDiagonal[4]); off(lDiagonal[1]); } if(s==1||s==2) switch(chasePosition){ case 2:on(rDiagonal[5]); on(rDiagonal[2]); off(rDiagonal[0]); off(rDiagonal[3]); case 1:on(rDiagonal[4]); on(rDiagonal[1]); off(rDiagonal[5]); off(rDiagonal[2]); case 0:on(rDiagonal[3]); on(rDiagonal[0]); off(rDiagonal[4]); off(rDiagonal[1]); } } void reverseVerticalRain(int s) { if(s==0||s==2) switch(chasePosition){ case 2:on(lHorizontal[5]); on(lHorizontal[2]); off(lHorizontal[0]); off(lHorizontal[3]); case 1:on(lHorizontal[4]); on(lHorizontal[1]); off(lHorizontal[5]); off(lHorizontal[2]); case 0:on(lHorizontal[3]); on(lHorizontal[0]); off(lHorizontal[4]); off(lHorizontal[1]); } if(s==1||s==2) switch(chasePosition){ case 2:on(rHorizontal[5]); on(rHorizontal[2]); off(rHorizontal[0]); off(rHorizontal[3]); case 1:on(rHorizontal[4]); on(rHorizontal[1]); off(rHorizontal[5]); off(rHorizontal[2]);

break; break; break;

break; break; break;

break; break; break;

break; break;

case 0:on(rHorizontal[3]); on(rHorizontal[0]); off(rHorizontal[4]); off(rHorizontal[1]); } } void diagonalRain(int s) { if(s==0||s==2) switch(chasePosition){ case 0:on(lDiagonal[5]); on(lDiagonal[2]); off(lDiagonal[0]); off(lDiagonal[3]); case 1:on(lDiagonal[4]); on(lDiagonal[1]); off(lDiagonal[5]); off(lDiagonal[2]); case 2:on(lDiagonal[3]); on(lDiagonal[0]); off(lDiagonal[4]); off(lDiagonal[1]); } if(s==1||s==2) switch(chasePosition){ case 0:on(rDiagonal[5]); on(rDiagonal[2]); off(rDiagonal[0]); off(rDiagonal[3]); case 1:on(rDiagonal[4]); on(rDiagonal[1]); off(rDiagonal[5]); off(rDiagonal[2]); case 2:on(rDiagonal[3]); on(rDiagonal[0]); off(rDiagonal[4]); off(rDiagonal[1]); } } void verticalRain(int s) { if(s==0||s==2) switch(chasePosition){ case 0:on(lHorizontal[5]); on(lHorizontal[2]); off(lHorizontal[0]); off(lHorizontal[3]); case 1:on(lHorizontal[4]); on(lHorizontal[1]); off(lHorizontal[5]); off(lHorizontal[2]); case 2:on(lHorizontal[3]); on(lHorizontal[0]); off(lHorizontal[4]); off(lHorizontal[1]); } if(s==1||s==2) switch(chasePosition){ case 0:on(rHorizontal[5]); on(rHorizontal[2]); off(rHorizontal[0]); off(rHorizontal[3]); case 1:on(rHorizontal[4]); on(rHorizontal[1]); off(rHorizontal[5]); off(rHorizontal[2]); case 2:on(rHorizontal[3]); on(rHorizontal[0]); off(rHorizontal[4]); off(rHorizontal[1]); } } void reversePyramidDiagonalBuild(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lDiagonal[0]); case 2:off(lDiagonal[0]); on(lDiagonal[1]); case 3:off(lDiagonal[1]); on(lDiagonal[2]); case 4:off(lDiagonal[2]); on(lDiagonal[3]); case 5:off(lDiagonal[3]); on(lDiagonal[4]); case 6:off(lDiagonal[4]); on(lDiagonal[5]);

break;

break; break; break;

break; break; break;

break; break; break;

break; break; break;

break; break; break; break; break; break; break;

case case case case case case case case case

7:on(lDiagonal[0]); 8:off(lDiagonal[0]); on(lDiagonal[1]); 9:off(lDiagonal[1]); on(lDiagonal[2]); 10:off(lDiagonal[2]); on(lDiagonal[3]); 11:off(lDiagonal[3]); on(lDiagonal[4]); 12:on(lDiagonal[0]); 13:off(lDiagonal[0]); on(lDiagonal[1]); 14:off(lDiagonal[1]); on(lDiagonal[2]); 15:off(lDiagonal[2]); on(lDiagonal[3]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

case 16:on(lDiagonal[0]); case 17:off(lDiagonal[0]); on(lDiagonal[1]); case 18:off(lDiagonal[1]); on(lDiagonal[2]); case 19:on(lDiagonal[0]); case 20:off(lDiagonal[0]); on(lDiagonal[1]); case 21:on(lDiagonal[0]); case case case case case 22:off(lDiagonal[0]); 23:off(lDiagonal[1]); 24:off(lDiagonal[2]); 25:off(lDiagonal[3]); 26:off(lDiagonal[4]);

} if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rDiagonal[0]); case 2:off(rDiagonal[0]); case 3:off(rDiagonal[1]); case 4:off(rDiagonal[2]); case 5:off(rDiagonal[3]); case 6:off(rDiagonal[4]); case case case case case case case case case

on(rDiagonal[1]); on(rDiagonal[2]); on(rDiagonal[3]); on(rDiagonal[4]); on(rDiagonal[5]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

7:on(rDiagonal[0]); 8:off(rDiagonal[0]); on(rDiagonal[1]); 9:off(rDiagonal[1]); on(rDiagonal[2]); 10:off(rDiagonal[2]); on(rDiagonal[3]); 11:off(rDiagonal[3]); on(rDiagonal[4]); 12:on(rDiagonal[0]); 13:off(rDiagonal[0]); on(rDiagonal[1]); 14:off(rDiagonal[1]); on(rDiagonal[2]); 15:off(rDiagonal[2]); on(rDiagonal[3]);

case 16:on(rDiagonal[0]); case 17:off(rDiagonal[0]); on(rDiagonal[1]); case 18:off(rDiagonal[1]); on(rDiagonal[2]); case 19:on(rDiagonal[0]); case 20:off(rDiagonal[0]); on(rDiagonal[1]); case 21:on(rDiagonal[0]); case case case case 22:off(rDiagonal[0]); 23:off(rDiagonal[1]); 24:off(rDiagonal[2]); 25:off(rDiagonal[3]);

case 26:off(rDiagonal[4]); } } void reversePyramidVerticalBuild(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lHorizontal[0]); case 2:off(lHorizontal[0]); on(lHorizontal[1]); case 3:off(lHorizontal[1]); on(lHorizontal[2]); case 4:off(lHorizontal[2]); on(lHorizontal[3]); case 5:off(lHorizontal[3]); on(lHorizontal[4]); case 6:off(lHorizontal[4]); on(lHorizontal[5]); case case case case case case case case case 7:on(lHorizontal[0]); 8:off(lHorizontal[0]); on(lHorizontal[1]); 9:off(lHorizontal[1]); on(lHorizontal[2]); 10:off(lHorizontal[2]); on(lHorizontal[3]); 11:off(lHorizontal[3]); on(lHorizontal[4]); 12:on(lHorizontal[0]); 13:off(lHorizontal[0]); on(lHorizontal[1]); 14:off(lHorizontal[1]); on(lHorizontal[2]); 15:off(lHorizontal[2]); on(lHorizontal[3]);

break;

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

case 16:on(lHorizontal[0]); case 17:off(lHorizontal[0]); on(lHorizontal[1]); case 18:off(lHorizontal[1]); on(lHorizontal[2]); case 19:on(lHorizontal[0]); case 20:off(lHorizontal[0]); on(lHorizontal[1]); case 21:on(lHorizontal[0]); case case case case case 22:off(lHorizontal[0]); 23:off(lHorizontal[1]); 24:off(lHorizontal[2]); 25:off(lHorizontal[3]); 26:off(lHorizontal[4]);

} if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rHorizontal[0]); case 2:off(rHorizontal[0]); case 3:off(rHorizontal[1]); case 4:off(rHorizontal[2]); case 5:off(rHorizontal[3]); case 6:off(rHorizontal[4]); case case case case case

on(rHorizontal[1]); on(rHorizontal[2]); on(rHorizontal[3]); on(rHorizontal[4]); on(rHorizontal[5]);

break; break; break; break; break; break; break; break; break; break; break; break; break;

7:on(rHorizontal[0]); 8:off(rHorizontal[0]); on(rHorizontal[1]); 9:off(rHorizontal[1]); on(rHorizontal[2]); 10:off(rHorizontal[2]); on(rHorizontal[3]); 11:off(rHorizontal[3]); on(rHorizontal[4]);

case 12:on(rHorizontal[0]);

case 13:off(rHorizontal[0]); on(rHorizontal[1]); case 14:off(rHorizontal[1]); on(rHorizontal[2]); case 15:off(rHorizontal[2]); on(rHorizontal[3]); case 16:on(rHorizontal[0]); case 17:off(rHorizontal[0]); on(rHorizontal[1]); case 18:off(rHorizontal[1]); on(rHorizontal[2]); case 19:on(rHorizontal[0]); case 20:off(rHorizontal[0]); on(rHorizontal[1]); case 21:on(rHorizontal[0]); case case case case case } } 22:off(rHorizontal[0]); 23:off(rHorizontal[1]); 24:off(rHorizontal[2]); 25:off(rHorizontal[3]); 26:off(rHorizontal[4]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break;

void pyramidDiagonalBuild(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lDiagonal[5]); case 2:off(lDiagonal[5]); on(lDiagonal[4]); case 3:off(lDiagonal[4]); on(lDiagonal[3]); case 4:off(lDiagonal[3]); on(lDiagonal[2]); case 5:off(lDiagonal[2]); on(lDiagonal[1]); case 6:off(lDiagonal[1]); on(lDiagonal[0]); case case case case case case case case case 7:on(lDiagonal[5]); 8:off(lDiagonal[5]); on(lDiagonal[4]); 9:off(lDiagonal[4]); on(lDiagonal[3]); 10:off(lDiagonal[3]); on(lDiagonal[2]); 11:off(lDiagonal[2]); on(lDiagonal[1]); 12:on(lDiagonal[5]); 13:off(lDiagonal[5]); on(lDiagonal[4]); 14:off(lDiagonal[4]); on(lDiagonal[3]); 15:off(lDiagonal[3]); on(lDiagonal[2]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

case 16:on(lDiagonal[5]); case 17:off(lDiagonal[5]); on(lDiagonal[4]); case 18:off(lDiagonal[4]); on(lDiagonal[3]); case 19:on(lDiagonal[5]); case 20:off(lDiagonal[5]); on(lDiagonal[4]); case 21:on(lDiagonal[5]); case case case case case 22:off(lDiagonal[5]); 23:off(lDiagonal[4]); 24:off(lDiagonal[3]); 25:off(lDiagonal[2]); 26:off(lDiagonal[1]);

} if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rDiagonal[5]); case 2:off(rDiagonal[5]); case 3:off(rDiagonal[4]); case 4:off(rDiagonal[3]); case 5:off(rDiagonal[2]); case 6:off(rDiagonal[1]); case case case case case case case case case

on(rDiagonal[4]); on(rDiagonal[3]); on(rDiagonal[2]); on(rDiagonal[1]); on(rDiagonal[0]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

7:on(rDiagonal[5]); 8:off(rDiagonal[5]); on(rDiagonal[4]); 9:off(rDiagonal[4]); on(rDiagonal[3]); 10:off(rDiagonal[3]); on(rDiagonal[2]); 11:off(rDiagonal[2]); on(rDiagonal[1]); 12:on(rDiagonal[5]); 13:off(rDiagonal[5]); on(rDiagonal[4]); 14:off(rDiagonal[4]); on(rDiagonal[3]); 15:off(rDiagonal[3]); on(rDiagonal[2]);

case 16:on(rDiagonal[5]); case 17:off(rDiagonal[5]); on(rDiagonal[4]); case 18:off(rDiagonal[4]); on(rDiagonal[3]); case 19:on(rDiagonal[5]); case 20:off(rDiagonal[5]); on(rDiagonal[4]); case 21:on(rDiagonal[5]); case case case case case } } void pyramidVerticalBuild(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lHorizontal[5]); case 2:off(lHorizontal[5]); case 3:off(lHorizontal[4]); case 4:off(lHorizontal[3]); case 5:off(lHorizontal[2]); case 6:off(lHorizontal[1]); case case case case case 22:off(rDiagonal[5]); 23:off(rDiagonal[4]); 24:off(rDiagonal[3]); 25:off(rDiagonal[2]); 26:off(rDiagonal[1]);

on(lHorizontal[4]); on(lHorizontal[3]); on(lHorizontal[2]); on(lHorizontal[1]); on(lHorizontal[0]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break;

7:on(lHorizontal[5]); 8:off(lHorizontal[5]); on(lHorizontal[4]); 9:off(lHorizontal[4]); on(lHorizontal[3]); 10:off(lHorizontal[3]); on(lHorizontal[2]); 11:off(lHorizontal[2]); on(lHorizontal[1]);

case 12:on(lHorizontal[5]); case 13:off(lHorizontal[5]); on(lHorizontal[4]);

case 14:off(lHorizontal[4]); on(lHorizontal[3]); case 15:off(lHorizontal[3]); on(lHorizontal[2]); case 16:on(lHorizontal[5]); case 17:off(lHorizontal[5]); on(lHorizontal[4]); case 18:off(lHorizontal[4]); on(lHorizontal[3]); case 19:on(lHorizontal[5]); case 20:off(lHorizontal[5]); on(lHorizontal[4]); case 21:on(lHorizontal[5]); case case case case case 22:off(lHorizontal[5]); 23:off(lHorizontal[4]); 24:off(lHorizontal[3]); 25:off(lHorizontal[2]); 26:off(lHorizontal[1]);

break; break; break; break; break; break; break; break; break; break; break; break; break;

} if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rHorizontal[5]); case 2:off(rHorizontal[5]); case 3:off(rHorizontal[4]); case 4:off(rHorizontal[3]); case 5:off(rHorizontal[2]); case 6:off(rHorizontal[1]); case case case case case case case case case

on(rHorizontal[4]); on(rHorizontal[3]); on(rHorizontal[2]); on(rHorizontal[1]); on(rHorizontal[0]);

break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break; break;

7:on(rHorizontal[5]); 8:off(rHorizontal[5]); on(rHorizontal[4]); 9:off(rHorizontal[4]); on(rHorizontal[3]); 10:off(rHorizontal[3]); on(rHorizontal[2]); 11:off(rHorizontal[2]); on(rHorizontal[1]); 12:on(rHorizontal[5]); 13:off(rHorizontal[5]); on(rHorizontal[4]); 14:off(rHorizontal[4]); on(rHorizontal[3]); 15:off(rHorizontal[3]); on(rHorizontal[2]);

case 16:on(rHorizontal[5]); case 17:off(rHorizontal[5]); on(rHorizontal[4]); case 18:off(rHorizontal[4]); on(rHorizontal[3]); case 19:on(rHorizontal[5]); case 20:off(rHorizontal[5]); on(rHorizontal[4]); case 21:on(rHorizontal[5]); case case case case case } } 22:off(rHorizontal[5]); 23:off(rHorizontal[4]); 24:off(rHorizontal[3]); 25:off(rHorizontal[2]); 26:off(rHorizontal[1]);

void randomAllFlash(int s)

{ if(s==0||s==2) { r = random(22,34); if(pinStatus[r-22]) off(r); else on(r); } if(s==1||s==2) { r = random(38,50); if(pinStatus[r-22]) off(r); else on(r); } } void randomSweepFlash(int s) { if(s==0||s==2) { r = random(34,38); if(pinStatus[r-22]) off(r); else on(r); } if(s==1||s==2) { r = random(50,54); if(pinStatus[r-22]) off(r); else on(r); } } void randomDiagonalFlash(int s) { if(s==0||s==2) { r = random(28,34); if(pinStatus[r-22]) off(r); else on(r); } if(s==1||s==2) { r = random(44,50); if(pinStatus[r-22]) off(r); else on(r); } } void randomVerticalFlash(int s)

{ if(s==0||s==2) { r = random(22,28); if(pinStatus[r-22]) off(r); else on(r); } if(s==1||s==2) { r = random(38,44); if(pinStatus[r-22]) off(r); else on(r); } } void sweepSwipeBounceIn(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lSweep[3]); case 2:on(lSweep[2]); case 3:on(lSweep[1]); case 4:on(lSweep[0]); case 5:off(lSweep[0]); case 6:off(lSweep[1]); case 7:off(lSweep[1]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rSweep[0]); case 2:on(rSweep[1]); case 3:on(rSweep[2]); case 4:on(rSweep[3]); case 5:off(rSweep[3]); case 6:off(rSweep[2]); case 7:off(rSweep[1]); } } void diagonalSwipeBounceIn(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lDiagonal[5]); case 2:on(lDiagonal[4]); case 3:on(lDiagonal[3]); case 4:on(lDiagonal[2]); case 5:on(lDiagonal[1]); case 6:on(lDiagonal[0]); case 7:off(lDiagonal[0]); case 8:off(lDiagonal[1]); case 9:off(lDiagonal[2]); case 10:off(lDiagonal[3]);

break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break; break;

case 11:off(lDiagonal[4]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rDiagonal[5]); case 2:on(rDiagonal[4]); case 3:on(rDiagonal[3]); case 4:on(rDiagonal[2]); case 5:on(rDiagonal[1]); case 6:on(rDiagonal[0]); case 7:off(rDiagonal[0]); case 8:off(rDiagonal[1]); case 9:off(rDiagonal[2]); case 10:off(rDiagonal[3]); case 11:off(rDiagonal[4]); } } void verticalSwipeBounceDown(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lHorizontal[5]); case 2:on(lHorizontal[4]); case 3:on(lHorizontal[3]); case 4:on(lHorizontal[2]); case 5:on(lHorizontal[1]); case 6:on(lHorizontal[0]); case 7:off(lHorizontal[0]); case 8:off(lHorizontal[1]); case 9:off(lHorizontal[2]); case 10:off(lHorizontal[3]); case 11:off(lHorizontal[4]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rHorizontal[5]); case 2:on(rHorizontal[4]); case 3:on(rHorizontal[3]); case 4:on(rHorizontal[2]); case 5:on(rHorizontal[1]); case 6:on(rHorizontal[0]); case 7:off(rHorizontal[0]); case 8:off(rHorizontal[1]); case 9:off(rHorizontal[2]); case 10:off(rHorizontal[3]); case 11:off(rHorizontal[4]); } }

break;

break; break; break; break; break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break; break; break;

void sweepSwipeBounceOut(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0);

break;

case case case case case case case

1:on(lSweep[0]); 2:on(lSweep[1]); 3:on(lSweep[2]); 4:on(lSweep[3]); 5:off(lSweep[3]); 6:off(lSweep[2]); 7:off(lSweep[1]);

break; break; break; break; break; break; break;

} if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rSweep[0]); case 2:on(rSweep[1]); case 3:on(rSweep[2]); case 4:on(rSweep[3]); case 5:off(rSweep[3]); case 6:off(rSweep[2]); case 7:off(rSweep[1]); } } void diagonalSwipeBounceOut(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lDiagonal[0]); case 2:on(lDiagonal[1]); case 3:on(lDiagonal[2]); case 4:on(lDiagonal[3]); case 5:on(lDiagonal[4]); case 6:on(lDiagonal[5]); case 7:off(lDiagonal[5]); case 8:off(lDiagonal[4]); case 9:off(lDiagonal[3]); case 10:off(lDiagonal[2]); case 11:off(lDiagonal[1]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rDiagonal[0]); case 2:on(rDiagonal[1]); case 3:on(rDiagonal[2]); case 4:on(rDiagonal[3]); case 5:on(rDiagonal[4]); case 6:on(rDiagonal[5]); case 7:off(rDiagonal[5]); case 8:off(rDiagonal[4]); case 9:off(rDiagonal[3]); case 10:off(rDiagonal[2]); case 11:off(rDiagonal[1]); } } void verticalSwipeBounceUp(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0);

break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break; break; break;

break;

case case case case case case case case case case case

1:on(lHorizontal[0]); 2:on(lHorizontal[1]); 3:on(lHorizontal[2]); 4:on(lHorizontal[3]); 5:on(lHorizontal[4]); 6:on(lHorizontal[5]); 7:off(lHorizontal[5]); 8:off(lHorizontal[4]); 9:off(lHorizontal[3]); 10:off(lHorizontal[2]); 11:off(lHorizontal[1]);

break; break; break; break; break; break; break; break; break; break; break;

} if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rHorizontal[0]); case 2:on(rHorizontal[1]); case 3:on(rHorizontal[2]); case 4:on(rHorizontal[3]); case 5:on(rHorizontal[4]); case 6:on(rHorizontal[5]); case 7:off(rHorizontal[5]); case 8:off(rHorizontal[4]); case 9:off(rHorizontal[3]); case 10:off(rHorizontal[2]); case 11:off(rHorizontal[1]); } }

break; break; break; break; break; break; break; break; break; break; break; break;

void sweepBounce(int s) { allOff(s); if(s==0||s==2) switch(chasePosition){ case 0:on(lSweep[0]); case 1:on(lSweep[1]); case 2:on(lSweep[2]); case 3:on(lSweep[3]); case 4:on(lSweep[2]); case 5:on(lSweep[1]); } if(s==1||s==2) switch(chasePosition){ case 0:on(rSweep[0]); case 1:on(rSweep[1]); case 2:on(rSweep[2]); case 3:on(rSweep[3]); case 4:on(rSweep[2]); case 5:on(rSweep[1]); } } void diagonalBounce(int s) { allOff(s); if(s==0||s==2) switch(chasePosition){ case 0:on(lDiagonal[0]);

break; break; break; break; break; break;

break; break; break; break; break; break;

break;

case case case case case case case case case

1:on(lDiagonal[1]); 2:on(lDiagonal[2]); 3:on(lDiagonal[3]); 4:on(lDiagonal[4]); 5:on(lDiagonal[5]); 6:on(lDiagonal[4]); 7:on(lDiagonal[3]); 8:on(lDiagonal[2]); 9:on(lDiagonal[1]);

break; break; break; break; break; break; break; break; break;

} if(s==1||s==2) switch(chasePosition){ case 0:on(rDiagonal[0]); case 1:on(rDiagonal[1]); case 2:on(rDiagonal[2]); case 3:on(rDiagonal[3]); case 4:on(rDiagonal[4]); case 5:on(rDiagonal[5]); case 6:on(rDiagonal[4]); case 7:on(rDiagonal[3]); case 8:on(rDiagonal[2]); case 9:on(rDiagonal[1]); } } void verticalBounce(int s) { allOff(s); if(s==0||s==2) switch(chasePosition){ case 0:on(lHorizontal[0]); case 1:on(lHorizontal[1]); case 2:on(lHorizontal[2]); case 3:on(lHorizontal[3]); case 4:on(lHorizontal[4]); case 5:on(lHorizontal[5]); case 6:on(lHorizontal[4]); case 7:on(lHorizontal[3]); case 8:on(lHorizontal[2]); case 9:on(lHorizontal[1]); } if(s==1||s==2) switch(chasePosition){ case 0:on(rHorizontal[0]); case 1:on(rHorizontal[1]); case 2:on(rHorizontal[2]); case 3:on(rHorizontal[3]); case 4:on(rHorizontal[4]); case 5:on(rHorizontal[5]); case 6:on(rHorizontal[4]); case 7:on(rHorizontal[3]); case 8:on(rHorizontal[2]); case 9:on(rHorizontal[1]); } } void flash(int s) { if(s==0||s==2) switch(chasePosition){

break; break; break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break;

break; break; break; break; break; break; break; break; break; break;

case 1:allOff(0); case 0:allOn(0); } if(s==1||s==2) switch(chasePosition){ case 1:allOff(1); case 0:allOn(1); } } void sweepSwipeIn(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lSweep[3]); case 2:on(lSweep[2]); case 3:on(lSweep[1]); case 4:on(lSweep[0]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rSweep[3]); case 2:on(rSweep[2]); case 3:on(rSweep[1]); case 4:on(rSweep[0]); } } void diagonalSwipeIn(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lDiagonal[5]); case 2:on(lDiagonal[4]); case 3:on(lDiagonal[3]); case 4:on(lDiagonal[2]); case 5:on(lDiagonal[1]); case 6:on(lDiagonal[0]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rDiagonal[5]); case 2:on(rDiagonal[4]); case 3:on(rDiagonal[3]); case 4:on(rDiagonal[2]); case 5:on(rDiagonal[1]); case 6:on(rDiagonal[0]); } } void verticalSwipeDown(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lHorizontal[5]);

break; break;

break; break;

break; break; break; break; break;

break; break; break; break; break;

break; break; break; break; break; break; break;

break; break; break; break; break; break; break;

break; break;

case case case case case

2:on(lHorizontal[4]); 3:on(lHorizontal[3]); 4:on(lHorizontal[2]); 5:on(lHorizontal[1]); 6:on(lHorizontal[0]);

break; break; break; break; break;

} if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rHorizontal[5]); case 2:on(rHorizontal[4]); case 3:on(rHorizontal[3]); case 4:on(rHorizontal[2]); case 5:on(rHorizontal[1]); case 6:on(rHorizontal[0]); } } void sweepSwipeOut(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lSweep[0]); case 2:on(lSweep[1]); case 3:on(lSweep[2]); case 4:on(lSweep[3]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rSweep[0]); case 2:on(rSweep[1]); case 3:on(rSweep[2]); case 4:on(rSweep[3]); } } void diagonalSwipeOut(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lDiagonal[0]); case 2:on(lDiagonal[1]); case 3:on(lDiagonal[2]); case 4:on(lDiagonal[3]); case 5:on(lDiagonal[4]); case 6:on(lDiagonal[5]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rDiagonal[0]); case 2:on(rDiagonal[1]); case 3:on(rDiagonal[2]); case 4:on(rDiagonal[3]); case 5:on(rDiagonal[4]); case 6:on(rDiagonal[5]); }

break; break; break; break; break; break; break;

break; break; break; break; break;

break; break; break; break; break;

break; break; break; break; break; break; break;

break; break; break; break; break; break; break;

} void verticalSwipeUp(int s) { if(s==0||s==2) switch(chasePosition){ case 0:allOff(0); case 1:on(lHorizontal[0]); case 2:on(lHorizontal[1]); case 3:on(lHorizontal[2]); case 4:on(lHorizontal[3]); case 5:on(lHorizontal[4]); case 6:on(lHorizontal[5]); } if(s==1||s==2) switch(chasePosition){ case 0:allOff(1); case 1:on(rHorizontal[0]); case 2:on(rHorizontal[1]); case 3:on(rHorizontal[2]); case 4:on(rHorizontal[3]); case 5:on(rHorizontal[4]); case 6:on(rHorizontal[5]); } } void allOff(int s) { if(s==0||s==2) for(int i=22; i<=37;i++) off(i); if(s==1||s==2) for(int i=38; i<=53;i++) off(i); } void allOn(int s) { if(s==0||s==2) for(int i=22; i<=37;i++) on(i); if(s==1||s==2) for(int i=38; i<=53;i++) on(i); } boolean buttonClicked() { buttonState = analogRead(buttonPin); return(buttonState > 500); } void on(int p1,int p2) { for(int i=p1;i<=p2;i++) on(i); } void off(int p1,int p2) { for(int i=p1;i<=p2;i++)

break; break; break; break; break; break; break;

break; break; break; break; break; break; break;

off(i); } void on(int pin) { digitalWrite(pin, LOW); pinStatus[pin-22]=true; } void off(int pin) { digitalWrite(pin, HIGH); pinStatus[pin-22]=false; }

Вам также может понравиться