Código
código Arduino
// Sempre devemos incluir a biblioteca #include "LedControl.h" byte rightscore; byte leftscore; int toneloop =1000; byte pongdisplay [] ={// Usado na inicialização para exibir "Pong" B11111111, B00000000, B00001001, B00000000, B00001001, B00000000, B00000110, B00000000, B00000000, B00000000, B00000000, B00000000, B01110000, B00000000, B00000000, B00001001, B00000000, B00000110, B00000000, B00000000, B00000000, B00000000, B00000000, B01110000, B00000000, B0000000010001000, B000000001000, B000000001000, B000000001000 , B00000000, B01110000, B00000000, B00000000, B00000000, B00000000, B00000000, B11110000, B00000000, B00001000, B00000000, B00001000, B00000000, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B1100110000, B00000000, B00001000, B00000000, B00001000, B00000000, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B110011110000, B00000000 B00001000, B000010001 , B11111111, B00000000, B00000000, B00000000, B00000000, B00000000,}; byte zero [] ={// Usado para exibir um '0' ao exibir a pontuação B00000000, B00000000, B00111100, B01000010, B01000010, B01000010, B00111100, B00000000}; byte um [] ={// Usado para exibir um '1' ao exibir a pontuação B00000000, B00000000, B10001000, B10000100, B11111110, B10000000, B10000000, B00000000}; byte dois [] ={// Usado para exibir um '2' ao exibir a pontuação B00000000, B01100010, B01010001, B01010001, B01001001, B01000110, B00000000, B00000000}; byte três [] ={// Usado para exibir um ' 3 'para ao exibir a pontuação B00000000, B00100110, B01000001, B01001001, B00110110, B00000000, B00000000, B00000000}; byte quatro [] ={// Usado para exibir um' 4 'para ao exibir a pontuação B00000000, B00000000, B00001111, B00001000, B00001000, B11111111, B00000000, B00000000}; byte cinco [] ={// Usado para exibir um '5' ao exibir a pontuação B00000000, B00000000, B10011110, B10010010, B10010010, B11110010, B00000000, B00000000}; byte displayevens =0; byte displayrow =0; byte displayindex =0; byte displayodds =1; tempo longo sem sinal; tempo atual longo sem sinal; / * Agora precisamos de um LedControl para trabalhar. o pino 12 está conectado ao DataIn o pino 11 está conectado ao CLK O pino 10 está conectado ao LOAD Temos 6 MAX72XX. * / modo de byte; desvio de byte; transporte de byte; linha interna; LedControl lc =LedControl (12,11,10,6); número rand longo; dir byte; pos iniciais int; linha de byte; coluna de byte; randNumber longo; início de byte; byte diry; int pass; limite de byte; #define leftpaddle 0 // botão esquerdo do pong está conectado à entrada analógica 0 # define rightpaddle 1 // botão direito pong está conectado ao analógico intput 1int directionpong; int rightpongval; int leftpongval; byte blinkx; byte pong [] ={// Armazena a posição da bola e remos B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000 , B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, , B00000000, B00000000, B00000000, B00000000, B00000000}; void setup () {pinMode (leftpaddle, INPUT); // a raquete é uma entrada. pinMode (rightpaddle, INPUT); // a raquete é uma entrada. Serial.begin (9600); // comunicação serial para depuração. Definido como 9600 baud // Estas instruções abaixo seguem e configuram as matrizes para as configurações fornecidas lc.shutdown (0, false); lc.setIntensity (0,1); lc.clearDisplay (0); lc.shutdown (1, falso); lc.setIntensity (1,1); lc.clearDisplay (1); lc.shutdown (2, falso); lc.setIntensity (2,1); lc.clearDisplay (2); lc.shutdown (3, falso); lc.setIntensity (3,1); lc.clearDisplay (3); lc.shutdown (4, falso); lc.setIntensity (4,1); lc.clearDisplay (4); lc.shutdown (5, falso); lc.setIntensity (5,1); lc.clearDisplay (5); while (displayevens <5) {while (displayrow <=7) {lc.setRow (displayevens, displayrow, pongdisplay [displayindex]); displayrow ++; displayindex + =2; } displayrow =0; displayevens + =2; } displayrow =0; displayindex =1; randomSeed (analogRead (4)); início =1; tempo =milis (); hora atual =milis (); while (currenttime-time <3000) {leftpongval =analogRead (leftpaddle); leftpongval =map (leftpongval, 1023,20,2,0); if (leftpongval ==0) {lc.setLed (3,2,7, verdadeiro); lc.setLed (3,3,7, falso); lc.setLed (3,4,7, falso); modo =1; limite =2; } if (leftpongval ==1) {lc.setLed (3,2,7, verdadeiro); lc.setLed (3,3,7, verdadeiro); lc.setLed (3,4,7, falso); modo =2; limite =1; } if (leftpongval ==2) {lc.setLed (3,2,7, verdadeiro); lc.setLed (3,3,7, verdadeiro); lc.setLed (3,4,7, verdadeiro); modo =3; limite =2; } atraso (50); lc.clearDisplay (3); hora atual =milis (); }} void loop () {remos (); pongsim (); tela de exibição(); } void paddles () {// lê os dados das pás e os exibe no array int searchbit; transportar int =0; // Serial.print ("LeftPaddle:"); // Serial.println (analogRead (leftpaddle)); leftpongval =analogRead (leftpaddle); leftpongval =map (leftpongval, 0,1010,0,13); rightpongval =analogRead (rightpaddle); rightpongval =map (rightpongval, 1023,20,0,13); // Serial.print ("RightPaddle:"); // Serial.println (rightpongval); // limpa a raquete anterior para exibir a próxima pong [0] =B00000000; pong [1] =B00000000; pong [46] =B00000000; pong [47] =B00000000; // ------------------------------- remo direito if (mode! =3) {if (rightpongval <=7) {rightpongval =map (rightpongval, 0,7,7,0); bitSet (pong [46], rightpongval); if (rightpongval-1> =0) {bitSet (pong [46], rightpongval-1); } else {bitSet (pong [47], 7); if (modo! =2) {bitSet (pong [47], 6); carregar =1; }} if (mode! =2) {if (carry ==0) {if (rightpongval-2> =0) {bitSet (pong [46], rightpongval-2); } else {bitSet (pong [47], 7); carregar =1; }}}} if (rightpongval> 7) {rightpongval =map (rightpongval, 8,13,7, limit); bitSet (pong [47], rightpongval); bitSet (pong [47], rightpongval-1); if (modo! =2) {bitSet (pong [47], rightpongval-2); }}} else {pong [46] =B11111111; pong [47] =B11111111; lc.setRow (4,7, pong [46]); lc.setRow (5,7, pong [47]); } // ---------------------------------- left paddle carry =0; if (leftpongval <=7) {leftpongval =map (leftpongval, 0,7,7,0); bitSet (pong [0], leftpongval); if (leftpongval-1> =0) {bitSet (pong [0], leftpongval-1); } else {bitSet (pong [1], 7); if (modo! =2) {bitSet (pong [1], 6); carregar =1; }} if (mode! =2) {if (carry ==0) {if (leftpongval-2> =0) {bitSet (pong [0], leftpongval-2); } else {bitSet (pong [1], 7); }}}} if (leftpongval> 7) {leftpongval =map (leftpongval, 8,13,7, limit); bitSet (pong [1], leftpongval); bitSet (pong [1], leftpongval-1); if (modo! =2) {bitSet (pong [1], leftpongval-2); }}} void pongsim () {if (((line ==2 || line ==3) &&diry ==0) || ((line ==44 || line ==45) &&diry ==1) ) {ball_meets_paddle (); } if (start ==1) {// Iniciando um novo jogo randnumber =random (1,7); // Obtenha um bit inicial aleatório dir =random (2); // Crie um movimento aleatório da esquerda para a direita ou da direita para a esquerda diry =random (2); // Crie uma direção de movimento y inicial aleatória if (diry ==0) {// Se a direção de y for 0. Movimento da linha inferior para a linha superior =random (30,34); // Crie uma linha inicial aleatória entre 30-34 bitSet (pong [line], randnumber); // Defina o bit na linha aleatória e o bit aleatório igual a 1 na matriz de pong} if (diry ==1) {// Se a direção y for 1. Movimento da linha superior para a linha inferior =aleatório (12,16); // Crie uma linha inicial aleatória entre 12-16 bitSet (pong [line], randnumber); // Defina o bit na linha aleatória e o bit aleatório igual a 1 no array pong} start =0; // Defina a varaible inicial igual a 0} if (diry ==0) {// Se a bola está se movendo de baixo para cima if (dir ==0) {// Se a bola está se movendo da direita para a esquerda se (deflect ==0 &&carry ==0) {// Se a bola não está desviando ou sendo transportada para outra linha de matriz- =2; // Avance a bola para o outro lado subtraindo 2 da linha pong [linha] =pong [linha + 2] <<1; // Mova a bola para a esquerda e defina-a igual à nova linha pong [linha + 2] =B00000000; // Limpe a linha antiga da bola} if (carry ==1) {// Se a bola tiver que ser transportada para uma nova matriz line- =3; // Avança a bola em direção ao outro lado subtraindo 3 da linha pong [line] =B00000001; // Defina a nova linha pong [line + 3] =B00000000; // Limpe a linha antiga da bola carry =0; // Defina a variável de transporte de volta para 0 return; // Terminamos aqui} if (deflect ==1) {// Se a bola tiver que desviar da parede line- =2; // Avança a bola em direção ao outro lado subtraindo 2 da linha pong [line] =B01000000; // Defina a nova linha pong [line + 2] =B00000000; // Limpe a linha antiga da bola deflect =0; // Defina a variável de deflexão de volta para 0 dir =1; // Muda a direção da esquerda para a direita return; // Terminamos aqui} if (bitRead (pong [line], 7) ==1) {// Se a bola estiver no 7º bit da linha if (line ==3 || line ==5 || linha ==7 || linha ==9 || linha ==11 || linha ==13 || linha ==15 || // Se a linha for uma linha ímpar linha ==17 || linha ==19 | | linha ==21 || linha ==23 || linha ==25 || linha ==27 || linha ==29 || linha ==31 || linha ==33 || linha ==35 || linha ==37 || linha ==39 || linha ==41 || linha ==43 || linha ==45) {transportar =1; // A bola precisa ser transportada para outro retorno de matriz; // Terminamos aqui} else {// Caso contrário, a bola está em uma linha par if (line! =2) {// A linha não pode ser 2 porque a bola encontra a raquete em 2 deflect =1; // A bola precisa desviar do retorno da parede; // Terminamos aqui}}}} // Os comentários acima devem explicar todas as coisas abaixo. Algumas coisas, parâmetros diferentes. if (dir ==1) {if (deflect ==0 &&carry ==0) {line- =2; pong [linha] =pong [linha + 2]>> 1; pong [linha + 2] =B00000000; } if (carry ==1) {line--; pong [linha] =B10000000; pong [linha + 1] =B00000000; transportar =0; Retorna; } if (deflect ==1) {line- =2; pong [linha] =B00000010; pong [linha + 2] =B0000000; deflexão =0; dir =0; Retorna; } if (bitRead (pong [linha], 0) ==1) {if (linha ==2 || linha ==4 || linha ==6 || linha ==8 || linha ==10 || linha ==12 || linha ==14 || linha ==16 || linha ==18 || linha ==20 || linha ==22 || linha ==24 || linha ==26 || linha ==28 || linha ==30 || linha ==32 || linha ==34 || linha ==36 || linha ==38 || linha ==40 || linha ==42 || linha ==44) {carregar =1; Retorna; } else {if (line! =3) {deflect =1; Retorna; }}}}} // ------------------------------------------- -diry =1 abaixo if (diry ==1) {if (dir ==0) {if (deflect ==0 &&carry ==0) {line + =2; pong [linha] =pong [linha-2] <<1; pong [linha-2] =B00000000; } if (transportar ==1) {linha + =1; pong [linha] =B00000001; pong [linha-1] =B00000000; transportar =0; Retorna; } if (deflect ==1) {line + =2; pong [linha] =B01000000; pong [linha-2] =B00000000; deflexão =0; dir =1; Retorna; } if (bitRead (pong [linha], 7) ==1) {if (linha ==5 || linha ==7 || linha ==9 || linha ==11 || linha ==13 || linha ==15 || linha ==17 || linha ==19 || linha ==21 || linha ==23 || linha ==25 || linha ==27 || linha ==29 || linha ==31 || linha ==33 || linha ==35 || linha ==37 || linha ==39 || linha ==41 || linha ==43 || linha ==45) {transportar =1; Retorna; } else {if (line! =44) {deflect =1; Retorna; }}}} if (dir ==1) {if (deflect ==0 &&carry ==0) {line + =2; pong [linha] =pong [linha-2]>> 1; pong [linha-2] =B00000000; } se (transportar ==1) {linha + =3; pong [linha] =B10000000; pong [linha-3] =B00000000; transportar =0; Retorna; } if (deflect ==1) {line + =2; pong [linha] =B00000010; pong [linha-2] =B0000000; deflexão =0; dir =0; Retorna; } if (bitRead (pong [linha], 0) ==1) {if (linha ==2 || linha ==4 || linha ==6 || linha ==8 || linha ==10 || linha ==12 || linha ==14 || linha ==16 || linha ==18 || linha ==20 || linha ==22 || linha ==24 || linha ==26 || linha ==28 || linha ==30 || linha ==32 || linha ==34 || linha ==36 || linha ==38 || linha ==40 || linha ==42 || linha ==44) {carregar =1; Retorna; } else {if (line! =45) {deflect =1; Retorna; }}}}}} void displayscreen () {displayevens =0; displayrow =0; displayindex =0; displayodds =1; while (displayevens <5) {while (displayrow <=7) {lc.setRow (displayevens, displayrow, pong [displayindex]); displayrow ++; displayindex + =2; } displayrow =0; displayevens + =2; } displayrow =0; displayindex =1; while (displayodds <6) {while (displayrow <8) {lc.setRow (displayodds, displayrow, pong [displayindex]); displayrow ++; displayindex + =2; } displayrow =0; displayodds + =2; }} void clearscreen () {int clearing =0; while (limpar <49) {pong [limpar] =B00000000; clearing ++; }} void ball_meets_paddle () {byte search1 =0; if (diry ==0) {// bola movendo-se para cima if (dir ==0) {// bola movendo-se da direita para a esquerda enquanto (search1 <8) {// encontre o bit em que a bola está if (bitRead (pong [line], search1) ==1) {// encontrou a parte em que a bola está if (line ==2) {if (search1! =6 &&search1! =7) {// se está na linha 2, faça certifique-se de que não está nesses bits especiais if (bitRead (pong [0], search1) ==1) {// verifique se há uma raquete ali diry =1; // muda a direção y de forma que vá em direção a outro tom de remo (9,500,100); } else if (bitRead (pong [0], search1 + 1) ==1) {diry =1; dir =1; tom (9.500.100); if (search1 ==0) {carry =1; }} else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }} if (search1 ==6) {// bit especial, precisa desviar o mesmo caminho que vem if (bitRead (pong [0], 7) ==1) {// há uma raquete lá, pong [2] =B01000000; dir =1; diry =1; tom (9.500.100); } else {// perdi, sem remo. tom (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }} if (search1 ==7) {// bit especial, precisa ricochetear primeiro na parede if (bitRead (pong [0], 6) ==1) {// encontrou o remo pong [2] =B00100000; diry =1; dir =1; linha =2; tom (9.500.100); tela de exibição(); } else {// perdi, sem remo. tom (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }}} if (line ==3) {if (search1! =7) {// se estiver na linha 3, certifique-se de que não está nesses bits especiais if (bitRead (pong [1], search1) ==1) {// verifique se há uma raquete ali diry =1; // muda a direção y de forma que vá em direção a outro tom de remo (9,500,100); } else if (bitRead (pong [1], search1 + 1) ==1) {diry =1; dir =1; tom (9.500.100); } else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }} if (search1 ==7) {// bit especial, precisa ser transportado para a próxima matriz if (bitRead (pong [1], 7) ==1) {// encontrou uma raquete lá // pong [2] =B10000000; // limpe a linha em que estava dir =0; // direção é a mesma diry =1; // a direção y muda o tom (9,500,100); } else if (bitRead (pong [0], 0) ==1) {dir =1; diry =1; tom (9.500.100); transportar =0; } else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }}}} search1 ++; }} if (dir ==1) {// a bola está se movendo da esquerda para a direita enquanto (search1 <8) {// encontre a parte em que a bola está if (bitRead (pong [line], search1) ==1) {// encontrou o bit em que a bola está if (line ==3) {if (search1! =1 &&search1! =0) {// se estiver na linha 3, certifique-se de que não está em um bit especial if ( bitRead (pong [1], search1) ==1) {// verifique se existe uma raquete diry =1; // muda a direção y para que a bola vá em direção ao outro tom da raquete (9,500,100); } else if (bitRead (pong [1], search1-1) ==1) {diry =1; dir =0; tom (9.500.100); if (search1 ==7) {carry =1; }} else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }} if (search1 ==1) {if (bitRead (pong [1], 0) ==1) {pong [3] =B00000010; dir =0; diry =1; tom (9.500.100); } else {tom (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }} if (search1 ==0) {if (bitRead (pong [1], 0) ==1) {pong [3] =B00000100; diry =1; dir =0; linha =3; tom (9.500.100); tela de exibição(); } else {tom (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }}} if (line ==2) {if (search1! =0) {if (bitRead (pong [0], search1) ==1) {// verifique se existe uma raquete diry =1; // muda a direção y para que a bola vá em direção ao outro tom da raquete (9,500,100); } else if (bitRead (pong [0], search1-1) ==1) {diry =1; dir =0; tom (9.500.100); } else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }} if (search1 ==0) {if (bitRead (pong [0], 0) ==1) {// pong [2] =B00000001; linha =2; dir =1; diry =1; tom (9.500.100); Retorna; } else if (bitRead (pong [1], 7) ==1) {diry =1; dir =0; tom (9.500.100); transportar =0; } else {tom (9.500.300); limpar tela(); início =1; atraso (1000); scoreleft (); }}}} search1 ++; }}} // --------------------------------------------- ------------------------- if (diry ==1) {// bola se movendo para cima if (dir ==0) {// bola se movendo da direita para a esquerda while (search1 <8) {// encontre o bit em que a bola está if (bitRead (pong [line], search1) ==1) {// encontrou o bit em que a bola está if (line ==44) {if (search1! =6 &&search1! =7) {// se estiver na linha 2, certifique-se de que não está nesses bits especiais if (bitRead (pong [46], search1) ==1) {// verifique se há uma raquete diry =0; // muda a direção y de forma que vá em direção a outro tom de remo (9,500,100); } else if (bitRead (pong [46], search1 + 1) ==1) {diry =0; dir =1; tom (9.500.100); if (search1 ==0) {carry =1; }} else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }} if (search1 ==6) {// bit especial, precisa desviar o mesmo caminho que vem if (bitRead (pong [46], 7) ==1) {// há uma raquete lá dir =1; diry =0; tom (9.500.100); } else {// perdi, sem remo. tom (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }} if (search1 ==7) {// bit especial, precisa ricochetear primeiro na parede if (bitRead (pong [46], 6) ==1) {// encontrou o paddle pong [44] =B00100000; diry =0; dir =1; tom (9.500.100); tela de exibição(); linha =44; Retorna; }}} if (line ==45) {if (search1! =7) {// se estiver na linha 3, certifique-se de que não está nesses bits especiais if (bitRead (pong [47], search1) ==1) {// verifique se há uma raquete ali diry =0; // muda a direção y de forma que vá em direção a outro tom de remo (9,500,100); } else if (bitRead (pong [47], search1 + 1) ==1) {diry =0; dir =1; tom (9.500.100); } else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }} if (search1 ==7) {// bit especial, precisa ser transportado para a próxima matriz if (bitRead (pong [47], 7) ==1) {// encontrou uma raquete lá // pong [45] =B10000000; // limpar a linha que estava na linha =45; dir =0; // direção é a mesma diry =0; // a direção y muda o tom (9,500,100); } else if (bitRead (pong [46], 0) ==1) {dir =1; diry =0; tom (9.500.100); transportar =0; } else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }}}} search1 ++; }} if (dir ==1) {// a bola está se movendo da esquerda para a direita enquanto (search1 <8) {// encontre a parte em que a bola está if (bitRead (pong [line], search1) ==1) {// encontrou o bit em que a bola está if (line ==45) {if (search1! =1 &&search1! =0) {// se estiver na linha 3, certifique-se de que não está em um bit especial if ( bitRead (pong [47], search1) ==1) {// verifique se existe uma raquete diry =0; // muda a direção y para que a bola vá em direção ao outro tom da raquete (9,500,100); } else if (bitRead (pong [47], search1-1) ==1) {diry =0; dir =0; tom (9.500.100); if (search1 ==7) {carry =1; }} else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }} if (search1 ==1) {if (bitRead (pong [47], 0) ==1) {pong [43] =B00000010; dir =0; diry =0; tom (9.500.100); } else {tom (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }} if (search1 ==0) {if (bitRead (pong [47], 1) ==1) {pong [45] =B00000100; diry =0; dir =0; linha =45; tom (9.500.100); tela de exibição(); } else {tom (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }}} if (line ==44) {if (search1! =0) {if (bitRead (pong [46], search1) ==1) {// verifique se existe uma raquete diry =0; // muda a direção y para que a bola vá em direção ao outro tom da raquete (9,500,100); } else if (bitRead (pong [46], search1-1) ==1) {diry =0; dir =0; tom (9.500.100); } else {// sem raquete, errou o tom da bola (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }} if (search1 ==0) {if (bitRead (pong [46], 0) ==1) {pong [44] =B00000001; linha =44; dir =1; diry =0; tom (9.500.100); } else if (bitRead (pong [47], 7) ==1) {dir =0; diry =0; tom (9.500.100); transportar =0; } else {tom (9.500.300); limpar tela(); início =1; atraso (1000); pontuação (); }}}} search1 ++; }}} passagem =1; search1 =0;} void scoreleft () {clearscreen (); rightscore ++; setscore (); tela de exibição(); if (rightscore ==5) {while (blinkx ++ <4) {clearscreen (); tela de exibição(); atraso (500); setscore (); tela de exibição(); atraso (500); } blinkx =0; rightscore =0; leftscore =0; } else {delay (2000); } clearscreen ();} void scoreright () {clearscreen (); leftscore ++; setscore (); tela de exibição(); if (leftscore ==5) {while (blinkx ++ <4) {clearscreen (); tela de exibição(); atraso (500); setscore (); tela de exibição(); atraso (500); } blinkx =0; rightscore =0; leftscore =0; } else {delay (2000); } clearscreen ();} void setscore () {byte setScoreLoop =0; while (setScoreLoop <=7) {if (leftscore ==0) {pong [setScoreLoop * 2] =zero [setScoreLoop]; } if (leftscore ==1) {pong [setScoreLoop * 2] =um [setScoreLoop]; } if (leftscore ==2) {pong [setScoreLoop * 2] =two [setScoreLoop]; } if (leftscore ==3) {pong [setScoreLoop * 2] =três [setScoreLoop]; } if (leftscore ==4) {pong [setScoreLoop * 2] =quatro [setScoreLoop]; } if (leftscore ==5) {pong [setScoreLoop * 2] =cinco [setScoreLoop]; } if (rightscore ==0) {pong [32+ (setScoreLoop * 2)] =zero [setScoreLoop]; } if (rightscore ==1) {pong [32+ (setScoreLoop * 2)] =um [setScoreLoop]; } if (rightscore ==2) {pong [32+ (setScoreLoop * 2)] =two [setScoreLoop]; } if (rightscore ==3) {pong [32+ (setScoreLoop * 2)] =três [setScoreLoop]; } if (rightscore ==4) {pong [32+ (setScoreLoop * 2)] =quatro [setScoreLoop]; } if (rightscore ==5) {pong [32+ (setScoreLoop * 2)] =cinco [setScoreLoop]; } setScoreLoop ++; } pong [20] =B00011000; pong [22] =B00011000; pong [24] =B00011000; }