Advertisement
patomarreco

Genius da poji

Apr 26th, 2017
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <wiringPi.h>
  5.  
  6. void facil();
  7. void medio();
  8. void dificil();
  9. void extremo();
  10. int botao(int b);
  11. int verif=1, n, v[32], i, j, jogadaAtual, errou=1, jogada, r, bb=0;
  12.  
  13. int main()
  14. {
  15.     wiringPiSetup();
  16.     pinMode(0, OUTPUT); //led 1
  17.     pinMode(1, OUTPUT); //led 2
  18.     pinMode(2, OUTPUT); //led 3
  19.     pinMode(3, OUTPUT); //led 4
  20.     pinMode(4, INPUT); //botao 1
  21.     pinMode(5, INPUT); //botao 2
  22.     pinMode(6, INPUT); //botao 3
  23.     pinMode(21, INPUT); //botao 4
  24.  
  25.     do{
  26.         system("clear");
  27.         jogadaAtual=1;
  28.     digitalWrite(0, LOW);
  29.     digitalWrite(1, LOW);
  30.     digitalWrite(2, LOW);
  31.     digitalWrite(3, LOW);
  32.         printf("Bem vindo ao Genius! Digite o numero correspondente.\n\n1: Dificuldade facil (8 repeticoes)\n2: Media (14)\n3: Dificil (20)\n4: Extrema (31)\n0: Sair\n");
  33.         scanf("%d",&n);
  34.         switch(n){
  35.         case 1:
  36.             facil();
  37.             printf("\nDigite 1 para voltar ao menu principal.\n");
  38.             scanf("%d",&verif);
  39.         break;
  40.         case 2:
  41.             medio();
  42.             printf("\nDigite 1 para voltar ao menu principal.\n");
  43.             scanf("%d",&verif);
  44.         break;
  45.         case 3:
  46.             dificil();
  47.             printf("\nDigite 1 para voltar ao menu principal.\n");
  48.             scanf("%d",&verif);
  49.         break;
  50.         case 4:
  51.             extremo();
  52.             printf("\nDigite 1 para voltar ao menu principal.\n");
  53.             scanf("%d",&verif);
  54.         break;
  55.         case 0:
  56.             verif=0;
  57.         break;
  58.         }
  59.     }while(verif==1);
  60.  
  61.     return 0;
  62. }
  63.  
  64. void facil(){
  65.     srand((unsigned)time(NULL));
  66.     for(i=0;i<=8;i++){
  67.             v[i]=rand()%4;
  68.     }
  69.     while(jogadaAtual<=8){
  70.         for(j=0;j<jogadaAtual;j++){
  71.             digitalWrite(v[j], HIGH);
  72.             delay(600);
  73.             digitalWrite(v[j], LOW);
  74.         delay(300);
  75.         }
  76.         printf("\n");
  77.         for(j=0;j<jogadaAtual;j++){
  78.             errou=botao(v[j]);
  79.     if(errou==0){
  80.             break;
  81.         }
  82.         delay(1000);
  83.         }
  84.         if(errou==0){
  85.             break;
  86.         }
  87.         jogadaAtual++;
  88.     }
  89.     if(errou==1){
  90.         printf("Voce venceu!\n");
  91.     }
  92.     if(errou==0){
  93.         printf("Perdeu.\n");
  94.         digitalWrite(0, HIGH);
  95.         digitalWrite(1, HIGH);
  96.         digitalWrite(2, HIGH);
  97.         digitalWrite(3, HIGH);
  98.     }
  99.     return;
  100. }
  101. void medio(){
  102.     srand((unsigned)time(NULL));
  103.     for(i=0;i<=14;i++){
  104.             v[i]=rand()%4;
  105.     }
  106.     while(jogadaAtual<=14){
  107.         for(j=0;j<jogadaAtual;j++){
  108.             digitalWrite(v[j], HIGH);
  109.             delay(600);
  110.             digitalWrite(v[j], LOW);
  111.         delay(300);
  112.         }
  113.         printf("\n");
  114.         for(j=0;j<jogadaAtual;j++){
  115.             errou=botao(v[j]);
  116.     if(errou==0){
  117.             break;
  118.         }
  119.         delay(1000);
  120.         }
  121.         if(errou==0){
  122.             break;
  123.         }
  124.         jogadaAtual++;
  125.     }
  126.     if(errou==1){
  127.         printf("Voce venceu!\n");
  128.     }
  129.     if(errou==0){
  130.         printf("Perdeu.\n");
  131.         digitalWrite(0, HIGH);
  132.         digitalWrite(1, HIGH);
  133.         digitalWrite(2, HIGH);
  134.         digitalWrite(3, HIGH);
  135.     }
  136.     return;
  137. }
  138. void dificil(){
  139.     srand((unsigned)time(NULL));
  140.     for(i=0;i<=20;i++){
  141.             v[i]=rand()%4;
  142.     }
  143.     while(jogadaAtual<=20){
  144.         for(j=0;j<jogadaAtual;j++){
  145.             digitalWrite(v[j], HIGH);
  146.             delay(600);
  147.             digitalWrite(v[j], LOW);
  148.         delay(300);
  149.         }
  150.         printf("\n");
  151.         for(j=0;j<jogadaAtual;j++){
  152.             errou=botao(v[j]);
  153.     if(errou==0){
  154.             break;
  155.         }
  156.         delay(1000);
  157.         }
  158.         if(errou==0){
  159.             break;
  160.         }
  161.         jogadaAtual++;
  162.     }
  163.     if(errou==1){
  164.         printf("Voce venceu!\n");
  165.     }
  166.     if(errou==0){
  167.         printf("Perdeu.\n");
  168.         digitalWrite(0, HIGH);
  169.         digitalWrite(1, HIGH);
  170.         digitalWrite(2, HIGH);
  171.         digitalWrite(3, HIGH);
  172.     }
  173.     return;
  174. }
  175. void extremo(){
  176.     srand((unsigned)time(NULL));
  177.     for(i=0;i<=31;i++){
  178.             v[i]=rand()%4;
  179.     }
  180.     while(jogadaAtual<=31){
  181.         for(j=0;j<jogadaAtual;j++){
  182.             digitalWrite(v[j], HIGH);
  183.             delay(600);
  184.             digitalWrite(v[j], LOW);
  185.         delay(300);
  186.         }
  187.         printf("\n");
  188.         for(j=0;j<jogadaAtual;j++){
  189.             errou=botao(v[j]);
  190.     if(errou==0){
  191.             break;
  192.         }
  193.         delay(1000);
  194.         }
  195.         if(errou==0){
  196.             break;
  197.         }
  198.         jogadaAtual++;
  199.     }
  200.     if(errou==1){
  201.         printf("Voce venceu!\n");
  202.     }
  203.     if(errou==0){
  204.         printf("Perdeu.\n");
  205.         digitalWrite(0, HIGH);
  206.         digitalWrite(1, HIGH);
  207.         digitalWrite(2, HIGH);
  208.         digitalWrite(3, HIGH);
  209.     }
  210.     return;
  211. }
  212. int botao(int b){
  213.     pinMode(0, OUTPUT); //led 1
  214.     pinMode(1, OUTPUT); //led 2
  215.     pinMode(2, OUTPUT); //led 3
  216.     pinMode(3, OUTPUT); //led 4
  217.     pinMode(4, INPUT); //botao 1
  218.     pinMode(5, INPUT); //botao 2
  219.     pinMode(6, INPUT); //botao 3
  220.     pinMode(21, INPUT); //botao 4
  221.     jogada=0;
  222.     bb=0;
  223.     while(jogada==0){
  224.         switch(b){
  225.         case 0:
  226.             if(digitalRead(4)){
  227.         while(digitalRead(4)){}
  228.         bb=0;
  229.                 errou=1;
  230.                 jogada=1;
  231.             }
  232.             else if((digitalRead(5)) || (digitalRead(6)) || (digitalRead(21))){
  233.         while((digitalRead(5)) || (digitalRead(6)) || (digitalRead(21))){}
  234.                 errou=0;
  235.                 jogada=1;
  236.             }
  237.         break;
  238.         case 1:
  239.             if(digitalRead(5)){
  240.         while(digitalRead(5)){}
  241.         bb=1;
  242.                 errou=1;
  243.                 jogada=1;
  244.             }
  245.             else if((digitalRead(4)) || (digitalRead(6)) || (digitalRead(21))){
  246.                 errou=0;
  247.                 jogada=1;
  248.             }
  249.         break;
  250.         case 2:
  251.             if(digitalRead(6)){
  252.         while(digitalRead(6)){}
  253.         bb=2;
  254.                 errou=1;
  255.                 jogada=1;
  256.             }
  257.             else if((digitalRead(5)) || (digitalRead(4)) || (digitalRead(21))){
  258.                 errou=0;
  259.                 jogada=1;
  260.             }
  261.         break;
  262.         case 3:
  263.             if(digitalRead(21)){
  264.         while(digitalRead(21)){}
  265.         bb=3;
  266.                 errou=1;
  267.                 jogada=1;
  268.             }
  269.             else if((digitalRead(5)) || (digitalRead(6)) || (digitalRead(4))){
  270.                 errou=0;
  271.                 jogada=1;
  272.             }
  273.         break;
  274.         }
  275.     }
  276.     if((bb==0)&&(errou==1)){
  277.         digitalWrite(0, HIGH);
  278.         delay(400);
  279.         digitalWrite(0, LOW);
  280.         delay(100);
  281.     }
  282.     if((bb==1)&&(errou==1)){
  283.         digitalWrite(1, HIGH);
  284.         delay(400);
  285.         digitalWrite(1, LOW);
  286.         delay(100);
  287.     }
  288.     if((bb==2)&&(errou==1)){
  289.         digitalWrite(2, HIGH);
  290.         delay(400);
  291.         digitalWrite(2, LOW);
  292.         delay(100);
  293.     }
  294.     if((bb==3)&&(errou==1)){
  295.         digitalWrite(3, HIGH);
  296.         delay(400);
  297.         digitalWrite(3, LOW);
  298.         delay(100);
  299.     }
  300.     return errou;
  301. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement