Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <wiringPi.h>
- void facil();
- void medio();
- void dificil();
- void extremo();
- int botao(int b);
- int verif=1, n, v[32], i, j, jogadaAtual, errou=1, jogada, r, bb=0;
- int main()
- {
- wiringPiSetup();
- pinMode(0, OUTPUT); //led 1
- pinMode(1, OUTPUT); //led 2
- pinMode(2, OUTPUT); //led 3
- pinMode(3, OUTPUT); //led 4
- pinMode(4, INPUT); //botao 1
- pinMode(5, INPUT); //botao 2
- pinMode(6, INPUT); //botao 3
- pinMode(21, INPUT); //botao 4
- do{
- system("clear");
- jogadaAtual=1;
- digitalWrite(0, LOW);
- digitalWrite(1, LOW);
- digitalWrite(2, LOW);
- digitalWrite(3, LOW);
- 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");
- scanf("%d",&n);
- switch(n){
- case 1:
- facil();
- printf("\nDigite 1 para voltar ao menu principal.\n");
- scanf("%d",&verif);
- break;
- case 2:
- medio();
- printf("\nDigite 1 para voltar ao menu principal.\n");
- scanf("%d",&verif);
- break;
- case 3:
- dificil();
- printf("\nDigite 1 para voltar ao menu principal.\n");
- scanf("%d",&verif);
- break;
- case 4:
- extremo();
- printf("\nDigite 1 para voltar ao menu principal.\n");
- scanf("%d",&verif);
- break;
- case 0:
- verif=0;
- break;
- }
- }while(verif==1);
- return 0;
- }
- void facil(){
- srand((unsigned)time(NULL));
- for(i=0;i<=8;i++){
- v[i]=rand()%4;
- }
- while(jogadaAtual<=8){
- for(j=0;j<jogadaAtual;j++){
- digitalWrite(v[j], HIGH);
- delay(600);
- digitalWrite(v[j], LOW);
- delay(300);
- }
- printf("\n");
- for(j=0;j<jogadaAtual;j++){
- errou=botao(v[j]);
- if(errou==0){
- break;
- }
- delay(1000);
- }
- if(errou==0){
- break;
- }
- jogadaAtual++;
- }
- if(errou==1){
- printf("Voce venceu!\n");
- }
- if(errou==0){
- printf("Perdeu.\n");
- digitalWrite(0, HIGH);
- digitalWrite(1, HIGH);
- digitalWrite(2, HIGH);
- digitalWrite(3, HIGH);
- }
- return;
- }
- void medio(){
- srand((unsigned)time(NULL));
- for(i=0;i<=14;i++){
- v[i]=rand()%4;
- }
- while(jogadaAtual<=14){
- for(j=0;j<jogadaAtual;j++){
- digitalWrite(v[j], HIGH);
- delay(600);
- digitalWrite(v[j], LOW);
- delay(300);
- }
- printf("\n");
- for(j=0;j<jogadaAtual;j++){
- errou=botao(v[j]);
- if(errou==0){
- break;
- }
- delay(1000);
- }
- if(errou==0){
- break;
- }
- jogadaAtual++;
- }
- if(errou==1){
- printf("Voce venceu!\n");
- }
- if(errou==0){
- printf("Perdeu.\n");
- digitalWrite(0, HIGH);
- digitalWrite(1, HIGH);
- digitalWrite(2, HIGH);
- digitalWrite(3, HIGH);
- }
- return;
- }
- void dificil(){
- srand((unsigned)time(NULL));
- for(i=0;i<=20;i++){
- v[i]=rand()%4;
- }
- while(jogadaAtual<=20){
- for(j=0;j<jogadaAtual;j++){
- digitalWrite(v[j], HIGH);
- delay(600);
- digitalWrite(v[j], LOW);
- delay(300);
- }
- printf("\n");
- for(j=0;j<jogadaAtual;j++){
- errou=botao(v[j]);
- if(errou==0){
- break;
- }
- delay(1000);
- }
- if(errou==0){
- break;
- }
- jogadaAtual++;
- }
- if(errou==1){
- printf("Voce venceu!\n");
- }
- if(errou==0){
- printf("Perdeu.\n");
- digitalWrite(0, HIGH);
- digitalWrite(1, HIGH);
- digitalWrite(2, HIGH);
- digitalWrite(3, HIGH);
- }
- return;
- }
- void extremo(){
- srand((unsigned)time(NULL));
- for(i=0;i<=31;i++){
- v[i]=rand()%4;
- }
- while(jogadaAtual<=31){
- for(j=0;j<jogadaAtual;j++){
- digitalWrite(v[j], HIGH);
- delay(600);
- digitalWrite(v[j], LOW);
- delay(300);
- }
- printf("\n");
- for(j=0;j<jogadaAtual;j++){
- errou=botao(v[j]);
- if(errou==0){
- break;
- }
- delay(1000);
- }
- if(errou==0){
- break;
- }
- jogadaAtual++;
- }
- if(errou==1){
- printf("Voce venceu!\n");
- }
- if(errou==0){
- printf("Perdeu.\n");
- digitalWrite(0, HIGH);
- digitalWrite(1, HIGH);
- digitalWrite(2, HIGH);
- digitalWrite(3, HIGH);
- }
- return;
- }
- int botao(int b){
- pinMode(0, OUTPUT); //led 1
- pinMode(1, OUTPUT); //led 2
- pinMode(2, OUTPUT); //led 3
- pinMode(3, OUTPUT); //led 4
- pinMode(4, INPUT); //botao 1
- pinMode(5, INPUT); //botao 2
- pinMode(6, INPUT); //botao 3
- pinMode(21, INPUT); //botao 4
- jogada=0;
- bb=0;
- while(jogada==0){
- switch(b){
- case 0:
- if(digitalRead(4)){
- while(digitalRead(4)){}
- bb=0;
- errou=1;
- jogada=1;
- }
- else if((digitalRead(5)) || (digitalRead(6)) || (digitalRead(21))){
- while((digitalRead(5)) || (digitalRead(6)) || (digitalRead(21))){}
- errou=0;
- jogada=1;
- }
- break;
- case 1:
- if(digitalRead(5)){
- while(digitalRead(5)){}
- bb=1;
- errou=1;
- jogada=1;
- }
- else if((digitalRead(4)) || (digitalRead(6)) || (digitalRead(21))){
- errou=0;
- jogada=1;
- }
- break;
- case 2:
- if(digitalRead(6)){
- while(digitalRead(6)){}
- bb=2;
- errou=1;
- jogada=1;
- }
- else if((digitalRead(5)) || (digitalRead(4)) || (digitalRead(21))){
- errou=0;
- jogada=1;
- }
- break;
- case 3:
- if(digitalRead(21)){
- while(digitalRead(21)){}
- bb=3;
- errou=1;
- jogada=1;
- }
- else if((digitalRead(5)) || (digitalRead(6)) || (digitalRead(4))){
- errou=0;
- jogada=1;
- }
- break;
- }
- }
- if((bb==0)&&(errou==1)){
- digitalWrite(0, HIGH);
- delay(400);
- digitalWrite(0, LOW);
- delay(100);
- }
- if((bb==1)&&(errou==1)){
- digitalWrite(1, HIGH);
- delay(400);
- digitalWrite(1, LOW);
- delay(100);
- }
- if((bb==2)&&(errou==1)){
- digitalWrite(2, HIGH);
- delay(400);
- digitalWrite(2, LOW);
- delay(100);
- }
- if((bb==3)&&(errou==1)){
- digitalWrite(3, HIGH);
- delay(400);
- digitalWrite(3, LOW);
- delay(100);
- }
- return errou;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement